用@redux/toolkit在哪里写可变逻辑和不可变逻辑?
Where to write mutable and where immutable logic with @redux/toolkit?
我遇到了与这个问题完全相同的问题 。使用此代码:
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 }
的对象数组?如果是这样(我希望不是),我该如何存储它?
如果我不能存储它,否则我是否需要为这种情况编写不可变逻辑?
你完全可以让对象处于状态,Redux Toolkit 对 Immer 的使用允许你“改变”这些对象。
我在另一个问题中的回答是指出 Date
对象本身不是可序列化的,所以你不应该将它们保存在 Redux 状态。
我遇到了与这个问题完全相同的问题
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 }
的对象数组?如果是这样(我希望不是),我该如何存储它?
如果我不能存储它,否则我是否需要为这种情况编写不可变逻辑?
你完全可以让对象处于状态,Redux Toolkit 对 Immer 的使用允许你“改变”这些对象。
我在另一个问题中的回答是指出 Date
对象本身不是可序列化的,所以你不应该将它们保存在 Redux 状态。