# MMDialog 对话框
# Props
# IDialogProps
属性 | 类型 | 默认值 | 必传 | 说明 |
---|---|---|---|---|
visible | boolean | 是 | 是否显示 | |
title | ReactNode | 否 | 标题内容 | |
content | ReactNode | 否 | 对话框内容 | |
closeable | boolean | false | 否 | 显示右上角关闭按钮 |
okText | ReactNode | 否 | 确定文本 | |
okColor | string | 否 | 确定文字颜色 | |
cancel | boolean | 否 | 是否显示取消 | |
cancelText | ReactNode | 否 | 取消文本 | |
cancelColor | string | 否 | 取消文本颜色 | |
footer | ReactNode | false | 否 | 自定义底部 | |
okLoading | boolean | 否 | 点击 ok 时是否显示 loading |
# 代码示例
import { FC, memo, useState } from "react";
import { View } from "@tarojs/components";
import MMDialog from "../../components/dialog";
import MMNavigation from "../../components/navigation";
import MMButton from "../../components/button";
import PageDemoBlock from "../../components/pageComponents/pageDemoBlock";
const Component: FC<any> = (props) => {
const [visible, setVisible] = useState(false);
const [cusVisible, setCusVisible] = useState(false);
const [asyVisible, setAsyVisible] = useState(false);
const [cancelisible, setCancelVisible] = useState(false);
const [customVisible, setCustomVisible] = useState(false);
return (
<View>
<MMNavigation>对话框</MMNavigation>
<PageDemoBlock title="对话框">
<MMButton onClick={() => setVisible(true)}>点击显示</MMButton>
<MMDialog
visible={visible}
title="确认加入团队?"
onOk={() => setVisible(false)}
onCancel={() => setVisible(false)}
/>
</PageDemoBlock>
<PageDemoBlock title="自定义">
<View>标题、按钮和按钮文本样式都可以修改</View>
<MMButton onClick={() => setCusVisible(true)}>点击显示</MMButton>
<MMDialog
visible={cusVisible}
title={
<View>
<View>一旦加入后不可解绑,</View>
<View>确认同意该团队邀请?</View>
</View>
}
okText="欣然接受"
okColor="#F18300"
cancelText="狠心拒绝"
cancelColor="red"
onOk={() => setCusVisible(false)}
onCancel={() => setCusVisible(false)}
/>
</PageDemoBlock>
<PageDemoBlock title="异步关闭">
<View>可以在点击确定时设置为异步处理</View>
<MMButton onClick={() => setAsyVisible(true)}>点击显示</MMButton>
<MMDialog
visible={asyVisible}
title="是否加入收藏"
okLoading
onOk={async () => {
await new Promise<void>((resolve) => {
setTimeout(() => {
resolve();
setAsyVisible(false);
}, 1000);
});
}}
onCancel={() => setAsyVisible(false)}
>
生命远不止连轴转和忙到极限,人类的体验远比这辽阔、丰富得多。
</MMDialog>
</PageDemoBlock>
<PageDemoBlock title="不显示取消">
<MMButton onClick={() => setCancelVisible(true)}>点击显示</MMButton>
<MMDialog
visible={cancelisible}
title="这个弹窗不显示取消"
cancel={false}
onOk={() => setCancelVisible(false)}
onCancel={() => setCancelVisible(false)}
/>
</PageDemoBlock>
<PageDemoBlock title="自定义底部">
<MMButton onClick={() => setCustomVisible(true)}>点击显示</MMButton>
<MMDialog
visible={customVisible}
title="这个弹窗不显示取消"
footer={
<MMButton block onClick={() => setCustomVisible(false)}>
点击确定
</MMButton>
}
/>
</PageDemoBlock>
</View>
);
};
const MMDialogPage = memo(Component);
export default MMDialogPage;