如何解决Redux Toolkit-将整个数组分配给state
如何使用RTK将整个数组分配给intialState对象?
执行state = payload
或state = [...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]
应该做你想要的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。