我需要在 SubmitForm 上分派两个不同的动作,逻辑是如果第一个动作成功我分派第二个动作
我喜欢这个
const handleClick = () =>{
setLoading(true)
const authorizationCode = refInput.current.state.tan
const email = emailValues?.email;
const UserId = phoneValues?.data?.d;
const phone_number = phoneValues?.value?.phone_number
const language = phoneValues?.value?.language
dispatch(verifyUserNumber({
email,
authorizationCode ,
language,
UserId,
phone_number,
}))
setTimeout(() => {
if(isDoneVerifyingUser){
dispatch(getKycToken(UserId, phone_number, authorizationCode))
setTimeout(() => {
setOpenModel(false)
setOpenKYC(true)
setLoading(false)
}, 2000);
}else{
setError(true)
setLoading(false)
}
}, 2000);
}
但是我有一个问题是我必须点击按钮两次才能调度第二个动作
答案 0 :(得分:1)
在状态中取一个变量 isDoneVerifying
。
在分派第一个 action 后,根据结果将 state 更新为 true 或 false。
在您的组件中使用依赖于 useEffect
的钩子 isDoneVerifying
并调用第二个分派。确保在执行减速器部分后将标志更改为 false。