gpt4 book ai didi

javascript - 为什么使用 immutableJS 我的状态没有改变?

转载 作者:行者123 更新时间:2023-11-28 11:51:12 26 4
gpt4 key购买 nike

我正在尝试将 immutableJS 添加到 Mern.io。当我尝试从我的帖子列表中删除帖子然后将其设置回我的状态时,状态不会更新。

case ActionTypes.DELETE_POST :
const removeArray = state.get('posts')
.filter((post) => post._id !== action.post._id)
console.log(removeArray.length)
state.set('posts', removeArray)
console.log(state)
return state;

在这个例子中,如果我有一个 5 的数组,我应该能够将其过滤掉,然后使用新数组再次设置“posts”。我不明白的是,我可以从数组中删除对象,并且removeArray将比state.posts少1。但是当我控制台日志状态时它是相同的。我错过了什么?

最佳答案

当您调用state.set(...)时,它会返回一个新对象。原始的状态没有改变。我在您的代码片段中更改了 3 行:

case ActionTypes.DELETE_POST :
const removeArray = state.get('posts')
.filter((post) => post._id !== action.post._id)
console.log(removeArray.length)
const newState = state.set('posts', removeArray) // assign to another variable
console.log(newState) // and log here
return newState; // and you'll probably want to return the new state

关于javascript - 为什么使用 immutableJS 我的状态没有改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37267121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com