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));
});
我正在开发一个应用程序,在将数据发送到服务器之前,我们检查字段是否为空并用虚拟数据填充它们。
向服务器发送数据前的状态:
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));
});