ReactJs - 如何在thunk promise中获得更新状态

Osa*_*rez 4 reactjs redux react-redux

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

在向服务器发送数据之前说明:

state = {
  title: '',
  body: ''
}
Run Code Online (Sandbox Code Playgroud)

我的调度功能:

this.props.dispatch((dispatch) => {
  dispatch(initializeProcessForm());
  dispatch(processForm(state));
});
Run Code Online (Sandbox Code Playgroud)

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

在这里,我松开了对当前的引用(函数完成后的新状态),并且当dispatch(processForm(state))提交给服务器时,它仍然保留带有空白字段的旧数据.

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

我可以访问新状态的唯一方法是,当我处理成功或拒绝表单时,我在Reducer内部进行API调用,然后转到reducer.

And*_*Ray 8

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

this.props.dispatch((dispatch, getState) => {
  dispatch(initializeProcessForm());
  const updatedState = getState();
  dispatch(processForm(updatedState));
});
Run Code Online (Sandbox Code Playgroud)