有什么方法可以处理反应中的 func 道具吗?
Is there any way to handle func props in react?
当我完成提交注册表单并获得成功数据后,我想返回登录表单。
在onSubmitForm
中有什么方法可以调用func props吗?
main.js
const [goToRegister, setGoToRegister] = useState(false);
const onClickGoToRegister = useCallback(() => {
setGoToRegister(prev => !prev);
}, []);
...
<Modal
title={goToRegister ? "register" : "login"}
visible={showModal}
onCancel={onCancel}
footer={null}
>
{goToRegister ? (
<SignUpForm onClickGoToRegister={onClickGoToRegister} />
) : (
<LogInForm onClickGoToRegister={onClickGoToRegister} />
)}
</Modal>;
如你所见,我将 'onClickGoToRegister' func 作为 props 传递给 SignUpForm
。
SignUpForm.js
const onSubmitForm = useCallback(
e => {
e.preventDefault();
dispatch({
type: SIGN_UP_REQUEST,
data: {
name: name,
email: `${email}@${tail}`,
password: password,
phone: `${phoneHead}${phoneBody}${phoneTail}`
}
});
if (signUpErrorReason) {
return message.error(signUpErrorReason);
}
},
[
name,
email,
tail,
password,
passwordCheck,
phoneHead,
phoneBody,
phoneTail,
signUpErrorReason
]
);
将该调度程序变成一个 promise 或异步函数。
如果您正在使用 redux-thunk ,我建议使用 redux-promise 将调度转换为 promises
如果调度动作是异步的,你可以直接做
dispatch()
.then(() => {
props.onClickGoToRegister()
})
或使用 await
useCallback(async e => {
// do stuff
await dispach({})
props.onClickGoToRegister()
})
当我完成提交注册表单并获得成功数据后,我想返回登录表单。
在onSubmitForm
中有什么方法可以调用func props吗?
main.js
const [goToRegister, setGoToRegister] = useState(false);
const onClickGoToRegister = useCallback(() => {
setGoToRegister(prev => !prev);
}, []);
...
<Modal
title={goToRegister ? "register" : "login"}
visible={showModal}
onCancel={onCancel}
footer={null}
>
{goToRegister ? (
<SignUpForm onClickGoToRegister={onClickGoToRegister} />
) : (
<LogInForm onClickGoToRegister={onClickGoToRegister} />
)}
</Modal>;
如你所见,我将 'onClickGoToRegister' func 作为 props 传递给 SignUpForm
。
SignUpForm.js
const onSubmitForm = useCallback(
e => {
e.preventDefault();
dispatch({
type: SIGN_UP_REQUEST,
data: {
name: name,
email: `${email}@${tail}`,
password: password,
phone: `${phoneHead}${phoneBody}${phoneTail}`
}
});
if (signUpErrorReason) {
return message.error(signUpErrorReason);
}
},
[
name,
email,
tail,
password,
passwordCheck,
phoneHead,
phoneBody,
phoneTail,
signUpErrorReason
]
);
将该调度程序变成一个 promise 或异步函数。 如果您正在使用 redux-thunk ,我建议使用 redux-promise 将调度转换为 promises
如果调度动作是异步的,你可以直接做
dispatch()
.then(() => {
props.onClickGoToRegister()
})
或使用 await
useCallback(async e => {
// do stuff
await dispach({})
props.onClickGoToRegister()
})