javascript - 根据特定条件产生不同传奇副作用的正确方法是什么?

标签 javascript ecmascript-6 redux redux-saga

我有 2 个页面(路线)作为 SPA 的一部分,假设第 1 页和第 2 页。 我有一个操作“MY_ACTION”,由两个页面调度。

我需要触发“MY_ACTION”的副作用,但仅限于第 2 页执行。

你知道如何用 redux-saga 来做到这一点吗?我有一个想法,我可以执行以下操作:

export function* rootSaga(){ 
    yield takeEvery(action => action.type === 'MY_ACTION' && {routeId === 'page2'}, () => console.log('MY_ACTION')); 
}

注意,{routeId === 'page2'} 是伪代码。

这是否是对操作进行此类过滤的正确方法? 或者也许有人可以建议另一种架构方法?

最佳答案

我会让页面在操作对象中包含附加信息,然后让您的传奇根据该附加字段进行过滤。

关于javascript - 根据特定条件产生不同传奇副作用的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52334746/

相关文章:

javascript - 如何使我的 JQuery 图像 slider 与屏幕宽度相同?

javascript - 具有 OR 运算符问题的数组解构,Uncaught TypeError : foo is not a function

node.js - NodeJS 中的多个 await 调用错误处理

reactjs - 为什么当 props 没有改变时 React 组件会重新渲染?

javascript - 为什么 Touch 对象缺少 MouseEvent 上存在的 offsetX/Y 属性?

javascript - 如何修复 router.get 中相互依赖的两个 Knex MySQL 查询

reactjs - 如何使用react/redux更新状态对象中的数组

javascript - 将 redux-devtools 与 jspm/system.js/babel 结合使用

javascript - 如果浏览器窗口宽度小于,则隐藏元素并显示其他元素

javascript - 为什么不能以这种方式实例化迭代器?