从redux-thunk动作创建者那里听取状态变化

时间:2016-05-19 19:09:07

标签: redux react-redux redux-thunk

我无法清楚地了解特定操作何时触发或特定状态是否已从redux-thunk动作创建者的上下文中更新。

我想做这样的事情:

  1. 派遣行动
  2. 检测可能的可恢复错误情况
  3. 错误条件调度启动不同的操作信号恢复过程
  4. 等待恢复完成
  5. 继续执行当前操作或重新发送
  6. 具体例子:

    1. 用户互动触发API调用操作
    2. 请注意,API调用失败,需要登录
    3. 发货&#39; LOGIN_REQUIRED&#39;动作,为用户弹出<dialog>
    4. 等待登录状态更改(或LOGIN_SUCCESS操作发生,无论如何)。
    5. 再次进行相同的API调用

2 个答案:

答案 0 :(得分:1)

如果要检查要分派的特定操作,则需要使用中间件。

如果您希望“订阅一个特定的状态”,Redux不会提供内置的方法来执行此操作。但是,有许多实用程序可以为您实现这种逻辑。请参阅http://redux.js.org/docs/FAQ.html#store-setup-subscriptions上的Redux常见问题解答,以及我的Redux插件目录中的list of store subscription addons。 (Redux middlewares列表也可能对“侦听操作”场景有用。)

答案 1 :(得分:0)

用于可视化您可以使用的商店中发生的事情:

import {composeWithDevTools} from 'redux-devtools-extension';

并将您的商店创建为:(例如使用thunk中间件)

const store = `createStore(rootReducer,composeWithDevTools(applyMiddleware(thunk)));`

然后您可以在浏览器中使用扩展名。 您可以通过{connect} from 'react-redux'作为道具访问您的州。 然后你的动作将通过reducer改变状态,这将导致你的组件获得新的道具,这样你就可以拥有你的逻辑

componentWillReceiveProps(nextProps) {/*your business logic*/}