【问题标题】:Conditions in reducers减速机的条件
【发布时间】:2017-08-25 04:19:49
【问题描述】:

在减速器中使用条件是一个的主意吗?像这样的:

case types.SET_SOME_ACTION:
   if(typeof someElement !== "undefined") {
      return Object.assign({}, state, {
          someElement: action.value
       })
    }

试图看看这是否是一种反模式。谢谢。

【问题讨论】:

    标签: reactjs redux react-redux


    【解决方案1】:

    我相信将您的业务逻辑放在动作创建器中是普遍的共识。这样一来,reducer 就只有一项责任:更新状态。

    查看此讨论了解更多信息:https://github.com/reactjs/redux/issues/1165

    redux FAQ 还推荐了一个哑减速器:http://redux.js.org/docs/faq/CodeStructure.html#how-should-i-split-my-logic-between-reducers-and-action-creators-where-should-my-business-logic-go

    我个人只在 redux store 中做简单的验证,实际的业务逻辑由 Redux Observable 或 Redux Thunk 处理。

    【讨论】:

    • 我完全同意你的回答。但是,我正在处理一个有趣的场景,到目前为止,我想出的唯一解决方案是在减速器中使用条件——我不想这样做。这是那个场景:stackoverflow.com/questions/45874594/…
    • FAQ 可能建议在 2017 年在 de reducer 中尽可能少地放置逻辑,但现在建议做相反的事情:在 reducer 中放置尽可能多的逻辑,因为它“有助于确保更多的实际的应用程序逻辑易于测试,可以更有效地使用时间旅行调试,并有助于避免可能导致突变和错误的常见错误”。另见redux.js.org/style-guide/…
    猜你喜欢
    • 2019-10-07
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多