javascript - React - 当用户点击提交时显示模式,在点击模式按钮之前不要点击端点
问题描述
我有一个标准的反应形式,它是用反应最终形式构建的。当用户单击提交时,我通过更新状态来显示模态向他们显示模态。模态有两个更新状态的选项。我想在触发 post 端点之前等待其中一个选项被单击。
这是表格
<div>
<Wrapper>
<Form
onSubmit={onSubmit}
render={({ handleSubmit }) => (
<form onSubmit={handleSubmit} noValidate>
// Fields are here
<Modal
isOpen={showModal}
handleAcceptClick={handleAcceptClick}
handleDeclineClick={handleDeclineClick}
/>
<Button
buttonType="submit"
/>
</form>
)}
/>
</Wrapper>
</div>
// 这是 onSubmit 方法
async function onSubmit(submission: Payload) {
setShowModal(true);
await api.create({
submission,
});
}
在模态组件中,根据他们是否接受或拒绝,在表单所在的同一文件中对 setstate 进行回调。api.create
在提交时调用该方法之前,我如何等待该状态发生。
解决方案
HTML:
<div>
<Wrapper>
<Form
onSubmit={onSubmit}
render={({ handleSubmit }) => (
<form onSubmit={handleSubmit} noValidate>
// Fields are here
<Modal
isOpen={showModal}
handleAcceptClick={handleAcceptClick}
handleDeclineClick={handleDeclineClick}
/>
<Button
buttonType="button"
onClick={confirm}
/>
</form>
)}
/>
</Wrapper>
</div>
JS代码:
function confirm() {
setShowModal(true);
}
// call this function on click of one option in modal
function onConfirm(){
onSubmit();
}
推荐阅读
- python - 在 QtCharts.QDateTimeAxis 上设置动态刻度
- node.js - 带有 Jest 的 Connect-mongo 包导致错误“测试运行完成后一秒钟 Jest 没有退出”
- python - Python:让程序对字符串中的关键字做出反应,而不是无尽的 if-else 噩梦
- azure - Problem_forward_taffic_from_Application_Gateway
- python - 在 Azure 表存储中存储日期时间字段
- azure-cloud-services - Azure Log Analytics Agent(Microsoft Monitoring Agent)安装错误(错误:无法连接,异常:System.Net.WebException:)
- google-chrome - 使用标志 --app 启动 google-chrome 时图标模糊
- angular - 检索从 Angular 中的函数返回的值
- javascript - Laravel & Javascript - 将时间转换为今天的日期 + 时间
- reactjs - TypeScript 错误:类型“void”不可分配给类型“SetStateAction”
'