ReactJs - 如何在 thunk 承诺中获取更新状态

ReactJs - How to get updated state while inside a thunk promise

我正在开发一个应用程序,在将数据发送到服务器之前,我们检查字段是否为空并用虚拟数据填充它们。

向服务器发送数据前的状态:

state = {
  title: '',
  body: ''
}

我的调度函数:

this.props.dispatch((dispatch) => {
  dispatch(initializeProcessForm());
  dispatch(processForm(state));
});

initializeProcessForm 我检查字段是否为空并适当地填充它们,但考虑到我们不应该 改变状态 ,我必须创建一个新的状态对象和 return.

在这里,我将引用 松散到当前(函数完成后的新状态)和 dispatch(processForm(state))提交给服务器,它仍然保留着空白字段的旧数据。

如何在不改变状态反应方式的情况下解决这个问题?

我可以访问新状态的唯一方法是一旦我进入 reducer,但是当我处理成功或拒绝表单时,API 调用发生在 Action 内部,然后再进入 reducer。

redux-thunk 传递给你的 thunk 的第二个参数是 getState

this.props.dispatch((dispatch, getState) => {
  dispatch(initializeProcessForm());
  const updatedState = getState();
  dispatch(processForm(updatedState));
});