在减速器中设置状态会产生类型错误

Setting state in a reducer yields type error

我正在通过 Redux Saga 返回数据并尝试用 Web 服务的结果覆盖我的空默认对象(returns 一个对象)。

我的 reducer 代码如下所示。

  function newSalesNumber(state = {}, action) {
  switch(action.type) {
    case 'NEWSALESNUMBER_FETCHED':
      return state
        .set("orderHeader.orderId", action.result);
    default:
      return state;
  }
}

export default newSalesNumber;

这是返回类型错误

uncaught at callGetNewSalesNumber TypeError: state.set is not a function

我觉得我在语法上遗漏了一些东西。在减速器中 set.state 的正确方法是什么?

如果您需要查看 Saga 代码,请告诉我。

State 没有设置。它不是 React 的 setState()。你也不能改变状态。尝试找到关于 redux 的一般信息,主要原则之一是不变性。

所以,你想做这样的事情:

return {...state, [orderHeader.orderId]:action.result} 

...state 只是用于传播状态的 es6 语法糖。 在此处阅读有关传播的更多信息:link