Skip to content

Dialog 对话框

模态对话框,在浮层中显示,引导用户进行相关操作。

基础用法

tsx
import { Dialog, Button } from 'my-react-ui-library';

export default () => {
  const [visible, setVisible] = useState(false);
  return (
    <div>
      <Button text="Open Dialog" onClick={() => setVisible(true)} />
      <Dialog
        visible={visible}
        onClose={() => setVisible(false)}
        onOk={() => console.log('OK clicked')}
        onCancel={() => console.log('Cancel clicked')}
      />
    </div>
  );
};

自定义标题和内容

tsx
import { Dialog, Button } from 'my-react-ui-library';

export default () => {
  const [visible, setVisible] = useState(false);
  return (
    <div>
      <Button text="Open Dialog" onClick={() => setVisible(true)} />
      <Dialog
        visible={visible}
        title="Custom Dialog Title"
        onClose={() => setVisible(false)}
      >
        <p>This is a dialog with custom title and content.</p>
      </Dialog>
    </div>
  );
};

自定义底部按钮

tsx
import { Dialog, Button } from 'my-react-ui-library';

export default () => {
  const [visible, setVisible] = useState(false);
  return (
    <div>
      <Button text="Open Dialog" onClick={() => setVisible(true)} />
      <Dialog
        visible={visible}
        title="Custom Footer"
        onClose={() => setVisible(false)}
        footer={
          <div style={{ display: 'flex', justifyContent: 'flex-end', gap: '8px' }}>
            <Button text="No" variant="neutral" onClick={() => setVisible(false)} />
            <Button text="Yes" onClick={() => setVisible(false)} />
          </div>
        }
      >
        <p>Dialog with custom footer buttons.</p>
      </Dialog>
    </div>
  );
};

自定义宽度

tsx
import { Dialog, Button } from 'my-react-ui-library';

export default () => {
  const [visible, setVisible] = useState(false);
  return (
    <div>
      <Button text="Open Dialog" onClick={() => setVisible(true)} />
      <Dialog
        visible={visible}
        width="800px"
        title="Wide Dialog"
        onClose={() => setVisible(false)}
      >
        <p>This is a dialog with custom width.</p>
      </Dialog>
    </div>
  );
};

API

属性说明类型默认值
visible对话框是否可见booleanfalse
width对话框宽度string'570px'
title对话框标题string | ReactNode | ReactNode[]'Are you absolutely sure?'
children对话框内容ReactNode-
footer对话框底部内容ReactNode | ReactNode[]-
maskClosable点击遮罩层是否可关闭booleantrue
onClose关闭对话框回调() => void-
onOk确认按钮回调() => void-
onCancel取消按钮回调() => void-