有什么方法可以处理反应中的 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()
})