react redux 同步调用

Posted

技术标签:

【中文标题】react redux 同步调用【英文标题】:react redux synchronous call 【发布时间】:2016-09-06 20:18:37 【问题描述】:

使用 redux 作为通量模式构建 React 应用程序。

要使用 api,需要进行令牌交换请求。这必须在 React 应用程序启动时发生一次。令牌交换返回的 access_token 需要存储在 redux 状态,并且可以被其他 api 调用访问。

我尝试的一种方法是在 App(parent) 组件中调用 redux 操作,然后所有其他调用都在子组件中。 React 新手我现在明白这不是正确的方法,因为 React 组件生命周期事件以及调用的动作和 reducer 不遵循同步流程,因此异步调用 redux 动作。

如何确保在任何其他依赖于第一个 redux 操作结果的 redux 操作之前调用 redux 操作?哪个中间件最适合确保同步方法 redux-thunk、redux-look 和 redux-saga。

【问题讨论】:

一切都可以通过足够的工作映射回 CSP,因此 redux-thunk 应该足以满足您的需求。 【参考方案1】:

如果您需要在任何其他操作之前运行一个进程,您可以在创建商店之前执行它,并在创建商店时将结果传递给您的主要 reducer 函数。

然后,在这个过程的promise或callback完成后,渲染应用。

否则,只需在商店创建之后和应用渲染之前调度这个初始操作(如果它是异步的,则使用 redux-thunk)。

【讨论】:

【参考方案2】:

您可以使用redux-thunk 在调度操作时具有“类似承诺”的行为。通过这种方式,您可以确保在分派另一个操作之前完成一个操作。

【讨论】:

以上是关于react redux 同步调用的主要内容,如果未能解决你的问题,请参考以下文章

在 React 中使用 preloadedState 进行测试:在函数中手动导入存储时,redux 存储不同步

如何解决 redux-persist 创建同步存储失败。回退到 React.js 中的 noop 存储

如何同步 Redux 状态和 url 哈希标签参数

Redux Thunk 同步动作不同步

如何使用 React 钩子处理/链接依赖于另一个的同步副作用

如何保持 React 组件与后端同步?