【问题标题】:Where to write mutable and where immutable logic with @redux/toolkit?使用@redux/toolkit 在哪里编写可变逻辑和不可变逻辑?
【发布时间】:2021-04-20 12:02:04
【问题描述】:

我遇到了与这个问题here 完全相同的问题。使用此代码:

set(state, action) {
  const { id, value, field } = action.payload
  const range = state.ranges.find(r => r.id === id)
  range[field] = new Date(value) //action.payload.field can be either "start" or "end"
}

上述问题的答案是not put non-serializable values in state。

这是否意味着我不能在我的状态下拥有一个看起来像 { id, start, end } 的对象数组?如果是这种情况(我希望不是),我该如何存储它?

如果我不能存储它,我是否需要为这种情况编写不可变的逻辑?

【问题讨论】:

  • 对象数组是可序列化的,promise 和函数不是。

标签: javascript reactjs redux redux-toolkit immer.js


【解决方案1】:

您可以完全拥有处于状态的对象,Redux Toolkit 对 Immer 的使用允许您“改变”这些对象。

我在另一个问题中的回答是指出 Date 对象本质上不是可序列化的,因此您不应该将它们保存在 Redux 状态。

【讨论】:

  • 谢谢,我意识到我将 Date 实例存储在状态中的方式已经很晚了
猜你喜欢
  • 2020-07-10
  • 2016-09-09
  • 1970-01-01
  • 2019-10-15
  • 1970-01-01
  • 2014-03-16
  • 1970-01-01
  • 1970-01-01
  • 2013-11-10
相关资源
最近更新 更多