所以我有这个Redux商店:
state = {
...
saved_books: {
FICTION:{book1, book2, book3},
NONFICTION: {book1, book2, book3}
},
...
}
我正在使用react-redux连接一个组件,该组件呈现每个类别(小说和非小说)中保存的书籍。
这很好用,直到用户决定添加或删除已保存的书。
流程如下:
相当标准。
问题在于,保存/删除书籍后,连接到商店这一部分的反应组件会消失。
#4中的reducer逻辑与最初显示已保存的书的逻辑相同,因此我知道问题仅在更新商店时出现。
这是我更新商店的方式(我想是不正确的):
// set = FICTION, NONFICTION, etc
// books = {book1, book2, book3, etc}
return Object.assign({},
state, {saved_books: {
...state.saved_books,
[set]: books
});
我认为saved_books[set]
不会一成不变地更新。说saved_books[set] = {book1, book2}
,然后我们删除book2
。
如果我唯一的真实来源是服务器,该如何不变地更新它?