Redux 工具包 - 将整个数组分配给状态

Redux Toolkit - assign entire array to state

如何使用 RTK 将整个数组分配给我的 intialState 对象?

执行 state = payloadstate = [...state, ...payload] 不会更新任何内容。

示例:

const slice = createSlice({
  name: 'usersLikedPosts',
  initialState: [],
  reducers: {
    getUsersLikedPosts: (state, { payload }) => {
      if (payload.length > 0) {
        state = payload
      }
    },
  },
})

有效载荷如下所示:

[
  0: {
    uid: '1',
    title: 'testpost'
  }
]

更新

这样做可行,但我不知道这是否是正确的方法。有人可以评论吗?

payload.forEach((item) => state.push(item))

immer 只能观察对最初通过 state 参数传递给您的函数的对象的修改。如果该变量被重新分配,则无法从函数外部观察,因为它仅存在于函数内的范围内。

但是,如果您更喜欢,您可以 return 一个新值而不是修改旧值。 (在这种情况下,它可能比进行一堆 .push 调用更高效)

所以

return [...state, ...payload]

应该做你想做的。