React Dialog 개요

    Ignite UI for React Dialog 구성 요소는 일부 정보를 표시하거나 사용자에게 작업 또는 확인을 요청하는 데 사용됩니다. 이는 대화 상자를 닫는 특정 작업이 수행될 때까지 사용자가 기본 앱과 상호 작용할 수 없음을 의미합니다.

    Ignite UI for React Dialog Example

    이 샘플은 React에서 Dialog 컴포넌트를 만드는 방법을 보여줍니다.

    Usage

    먼저, 다음 명령을 실행하여 Ignite UI for React 설치해야 합니다.

    npm install igniteui-react
    

    그런 다음 다음과 같이 React IgrDialog와 필요한 CSS를 가져와야 합니다.

    import { IgrDialog } from 'igniteui-react';
    import 'igniteui-webcomponents/themes/light/bootstrap.css';
    

    Ignite UI for React에 대한 전체 소개를 보려면 시작하기 항목을 읽어보세요.

    대화 상자 구성 요소를 표시하는 가장 간단한 방법은 show 메서드를 사용하고 버튼 클릭 시 호출하는 것입니다.

    <IgrButton variant="contained" clicked={this.onDialogShow}>
        <span>Show Dialog</span>
    </IgrButton>
    
    <IgrDialog ref={this.onDialogRef}>
        <span>Dialog Message</span>
    </IgrDialog>
    
    public onDialogRef(dialog: IgrDialog) {
        if (!dialog) { return; }
        this.dialogRef = dialog;
    }
    
    public onDialogShow() {
        if (this.dialogRef) {
            this.dialogRef.show();
        }
    }
    

    Dialog 구성 요소는 애플리케이션 시나리오에 따라 해당 상태를 구성할 수 있는 open 속성을 제공합니다.

    대화 상자의 제목을 설정하려면 title 속성을 사용하십시오. 그러나 title 슬롯에 콘텐츠가 제공되면 해당 콘텐츠가 속성보다 우선적으로 적용됩니다.

    작업 버튼이나 추가 정보는 footer 슬롯을 통해 대화 상자 하단에 배치할 수 있습니다. 콘텐츠가 추가되지 않은 경우 클릭하면 대화 상자를 닫는 기본 OK 버튼이 표시됩니다. 이 버튼을 표시하지 않으려면 hideDefaultAction 속성을 true로 설정하면 됩니다. 기본값은 false 입니다.

    Closing

    기본적으로 사용자가 ESC 키를 누르면 대화 상자가 자동으로 닫힙니다. keepOpenOnEscape 속성을 사용하면 이 동작을 방지할 수 있습니다. 기본값은 false 입니다. 대화 상자에 열린 드롭다운(또는 ESC 내부적으로 처리해야 하는 다른 요소)이 있는 경우 ESC 한 번 누르면 드롭다운이 닫히고 다시 누르면 대화 상자가 닫힙니다.

    closeOnOutsideClick 속성을 사용하여 대화 상자 외부를 클릭할 때 대화 상자를 닫아야 하는지 구성합니다. 기본값은 false 입니다.

    Form

    양식 요소에 method="dialog" 속성이 있는 경우 대화 상자를 닫을 수 있습니다. 양식을 제출하면 대화 상자가 닫힙니다.

    Styling

    구성 요소는 IgrDialog 스타일을 완전히 제어할 수 있도록 여러 CSS 부분을 노출합니다.

    이름 설명
    base 대화 상자의 기본 래퍼입니다.
    title 제목 컨테이너입니다.
    footer 바닥글 컨테이너입니다.
    content 콘텐츠 컨테이너입니다.
    igc-dialog::part(content) {
      background: var(--ig-secondary-800);
      color: var(--ig-secondary-800-contrast);
    }
    
    igc-dialog::part(title),
    igc-dialog::part(footer) {
      background: var(--ig-secondary-800);
      color: var(--ig-warn-500);
    }
    

    API References

    Additional Resources