我正在使用 Ant Design 3X 模式确认来在我的 React 应用程序中显示确认模式。我需要根据用户与模式的交互来解析具有不同值的 Promise:
但是,我注意到,当我使用“X”图标关闭模式时,会调用 onCancel 函数并用 0 解析 Promise。这是我的代码:
Confirmation = async () => {
return new Promise((resolve, reject)=>{
confirm({
title: `Message`,
okText: 'Yes',
cancelText: 'No',
onOk: () => {
resolve(1)
},
onCancel: () => {
resolve(0)
},
});
})
}
有没有办法区分使用“X”图标关闭模态和单击“否”,以便当使用“X”图标关闭模态时我可以用 2 解析 Promise?
通过对 onCancel 处理程序稍作修改,您可以实现当用户单击“否”或使用 Ant Design Modal 确认中的“X”图标关闭模式时解析不同值的所需行为。这是更新后的代码:
Confirmation = async () => {
return new Promise((resolve, reject) => {
confirm({
title: `Message`,
okText: 'Yes',
cancelText: 'No',
onOk: () => {
resolve(1); // Resolve with 1 when the user clicks "Yes"
},
onCancel: (close) => {
if (close?.triggerCancel) {
resolve(2); // Resolve with 2 when the modal is closed using the "X" icon
} else {
resolve(0); // Resolve with 0 when the user clicks "No"
close(true); // Close the modal
}
},
});
});
};
在此代码中:
此修改确保您可以区分使用“X”图标关闭模式和单击“否”并相应地解析 Promise。