使用 Context API + UseReducer 同步状态更新

时间:2021-07-21 15:40:11

标签: reactjs react-native asynchronous react-navigation react-context

我正在构建一个带有 React 导航的 React Native 应用程序,这意味着我无法以通常的方式将 props 传递给我的组件(它们都嵌套在来自 React 导航的 组件中)。

相反,我使用 react Context API 通过我的组件树向下传递数据。

我的问题是每次使用 dispatch 时,它似乎都是异步执行的。如果我这样做:

const Submit = function () {
        //this line is caught by my reducer and the signUpData is added to the state
        dispatch({ type: "signUp", signUpData}) 
        axios({ url:'myapiURL', data: state.signUpData, method: "POST" })
  }

我的发布请求将使用 undefined 而不是正确的 signUpData 发送。无论我在调度后立即尝试做什么,都好像状态尚未更新,因为调度是异步的。

问题是调度不应该是异步的(据我所知?文档不清楚)并且因为它不返回承诺,我不能使用 .then() 或 await/async确保在我的 axios 或控制台日志出现在下一行之前完成调度。

0 个答案:

没有答案