react使用antd的Modal.confirm时,怎么在外面获取点击哪个按钮。
import { Modal} from 'antd';const cmdCan_Click = async () => { await requestMsg(1);};//iAppMod=0或者iAppMod=1const requestMsg = async (msgTyp: number) => { switch (iAppMod) { // 0 case baseConst.Add: switch (msgTyp) { case 0: await msgDialog('是否确实要注册?'); break; } break; // 1 case baseConst.Upd: switch (msgTyp) { case 0: await msgDialog('可以更改吗'); break; case 1: await msgDialog('没有修改完成,确定要结束吗?'); break; } break;};const msgDialog = async (msg: string) => { await Modal.confirm({ title: "test", content: msg, closable: true, okText: "OK", cancelText: "取消", centered: true, onOk() { }, onCancel() { }, }) };
在cmdCan_Click调用requestMsg()方法后,可以获取到msgDialog()对话框里面点击Ok还是Can按钮的值吗?在msgDialog里面renturn好像不行,requestMsg()方法不能得到返回值
以下是在 React 中使用 Antd
的 Modal.confirm
并传递按钮点击结果的示例代码:
import React, { useState } from'react';import { Modal, Button } from 'antd';function MyComponent() { const [isModalVisible, setIsModalVisible] = useState(false); const [result, setResult] = useState(''); const showModal = () => { setIsModalVisible(true); }; const handleOk = () => { setResult('确定按钮被点击'); setIsModalVisible(false); }; const handleCancel = () => { setResult('取消按钮被点击'); setIsModalVisible(false); }; return ( <div> <Button type="primary" onClick={showModal}> 打开模态框 </Button> <Modal title="确认框" visible={isModalVisible} onOk={handleOk} onCancel={handleCancel} > <p>这是一个确认框</p> </Modal> <p>点击结果: {result}</p> </div> );}export default MyComponent;
在上述代码中,通过 handleOk
和 handleCancel
函数来处理确定和取消按钮的点击事件,并更新 result
状态来展示点击结果。
利用 promise 封装一下就行了
const cmdCan_Click = async () => { const instance = await requestMsg(1); // 可拿到弹框实例更新弹框 instance?.modal.update({ title : '' }) // 也可以拿到点击状态 instance?.status // 'OK' | 'Cancel' // 逻辑完成 也可销毁弹框 instance?.modal.destroy();};//iAppMod=0或者iAppMod=1const requestMsg = async (msgTyp: number) => { switch (iAppMod) { // 0 case baseConst.Add: switch (msgTyp) { case 0: return msgDialog('是否确实要注册?'); } break; // 1 case baseConst.Upd: switch (msgTyp) { case 0: return msgDialog('可以更改吗') case 1: return msgDialog('没有修改完成,确定要结束吗?'); } break;};const msgDialog = async (msg: string) : Promise<{modal : ReturnType<typeof Modal.confirm> , status : 'OK' | 'Cancel'}> => { return new Promise((resolve,reject)=>{ const modal = Modal.confirm({ title: "test", content: msg, closable: true, okText: "OK", cancelText: "取消", centered: true, onOk() { resolve({modal , status : 'OK'}); }, onCancel() { resolve({modal , status : 'Cancel'}); }, }) }) };
在 Ant Design 的 Modal.confirm
方法中,你不能直接通过返回值来判断用户点击了哪个按钮,因为 Modal.confirm
是一个基于 Promise 的异步函数,但它并不返回用户点击的按钮信息。然而,你可以通过回调函数来处理用户的点击事件。
要获取用户点击的是“确定”还是“取消”按钮,你需要在 onOk
和 onCancel
回调函数中设置状态或者执行特定的逻辑。
以下是一个修改后的例子,它展示了如何在 onOk
和 onCancel
回调函数中处理用户的点击事件:
import { Modal, message } from 'antd';// 假设 baseConst 是你定义的常量const baseConst = { Add: 0, Upd: 1,};// 假设这是你的状态管理变量,用于存储用户的选择let userChoice = null;const cmdCan_Click = async () => { await requestMsg(1); // 在这里你可以根据 userChoice 来判断用户的选择 if (userChoice === 'ok') { console.log('用户点击了确定'); } else if (userChoice === 'cancel') { console.log('用户点击了取消'); }};const requestMsg = async (msgTyp: number) => { // ... 省略其他代码 if (msgTyp === 0) { msgDialog('是否确实要注册?'); } // ... 省略其他代码};const msgDialog = (msg: string) => { Modal.confirm({ title: "test", content: msg, closable: true, okText: "OK", cancelText: "取消", centered: true, onOk() { userChoice = 'ok'; // 用户点击了确定 // 这里可以执行你需要的逻辑 message.success('用户点击了确定'); }, onCancel() { userChoice = 'cancel'; // 用户点击了取消 // 这里可以执行你需要的逻辑 message.info('用户点击了取消'); }, });};// 调用 cmdCan_Click 函数来触发对话框cmdCan_Click();
在这个例子中,我使用了一个全局变量 userChoice
来存储用户的选择。然而,在实际应用中,你可能会使用 React 的状态(state)或者 Redux、MobX 等状态管理库来管理这些值。
注意,由于 Modal.confirm
是异步的,并且不返回 Promise,你不能在 requestMsg
函数中 await
它。相反,你应该在 onOk
和 onCancel
回调函数中处理用户的点击事件。
现在有一个按钮,点击这个按钮需要和点击Upload一样的效果,应该怎么实现,antd的版本是4.22.4 upload组件并没有暴露相关的api使用,并且内部也不是使用click来实现的
如何在无限次或动态地单击按钮时添加新的?或者简单地说,如何执行添加更多按钮的功能? 我在Javafx中尝试过,但它只是在列表中添加了两个按钮。 但我必须动态添加,直到用户想要添加/按下上一个按钮
下面是.java文件中的代码
问题内容: 下面是我的部分代码,但我的问题很简单,当用户单击“我”时如何对我的函数说data-id =“ 1” ? 问题答案: 由于您已经在使用ES6- 在这里使用箭头功能可能会更干净一些:
我有:我在水平滚动视图中有一组按钮 我想要的:我想要在双击按钮时检测事件 注意通常我处理点击事件使用.但是现在我怎么能实现同样的双击。如果有任何界面我也可以用于此目的,这将是有帮助的
本文向大家介绍java处理按钮点击事件的方法,包括了java处理按钮点击事件的方法的使用技巧和注意事项,需要的朋友参考一下 不同的事件源可以产生不同类别的事件。例如,按钮可以发送一个ActionEvent对象,而窗口可以发送WindowEvent对象。 AWT时间处理机制的概要: 1. 监听器对象是一个实现了特定监听器接口(listener interface)的类的实例。 2. 事件源是一个能够