【问题标题】:dispatch the same event order of arrival in saga and redux在 saga 和 redux 中发送相同的事件到达顺序
【发布时间】:2020-08-26 02:11:51
【问题描述】:

案例1

假设我在 UI 中 dispatch({type: TEST_EVENT})useEffect,我的 saga 和 reducer 都在监听同一个事件。谁会先得到它。

案例2

说我在 UI 中 dispatch({type: TEST_EVENT})useEffect,然后 saga 听它,然后在 saga 我做 yield put({type: 'TEST_EVENT_1'},然后 reducer(如果听 TEST_EVENT_1)将能够接收它。有人可以证实这一点吗?

【问题讨论】:

  • 是的,动作总是先到 reducer,然后在 sagas 中处理。第二种情况是在数据到达 reducer 之前在 saga 中做某事的正确方法。

标签: reactjs redux react-redux redux-saga


【解决方案1】:

案例 1:从 redux-saga 中间件 source code,我们知道 saga 和 reducer 是否都在监听相同的动作类型。 reducer 会首先得到 action。

案例2:推荐的工作流程是:dispatch SOME_EVENT action => watcher saga => worker saga => 做某事(调用API、计算等)=> dispatch SOME_EVENT_FULFILLED/SOME_EVENT_REJECTED action to减速机。

【讨论】:

    猜你喜欢
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 2017-05-28
    • 2018-02-01
    相关资源
    最近更新 更多