gpt4 book ai didi

javascript - 在 redux reducer 中如何更新数组对象内的 1 个属性

转载 作者:行者123 更新时间:2023-12-03 03:47:24 24 4
gpt4 key购买 nike

我有一个 reducer ,它首先获取没有书籍副本数属性的书籍数组对象列表,然后为每本书获取副本数

const bookList= (state = [], action) => {
switch (action.type) {
case 'BOOKS_REQUEST_SUCCEEDED':
return Object.assign({}, state, action.payload);
case 'BOOKS_COUNT_REQUEST_SUCCEEDED':
return updateBookCopiesCount(state, action);
default:
return state
}
}

const updateBookCopiesCount = (state, action) => {
const newState = state.map((book) => { // updating only the book copies count
if (book.Id === action.payload.Id) {
return { ...book,
copiesCount: action.payload.copiesCount
};
}
return book;
});
return newState;
}

我的问题是,正确的 redux 方法是什么:我应该每次复制整个数组以及每次copyCount更新的所有对象,还是只复制使用新属性修改的对象

提前致谢

最佳答案

Redux 仅要求您在数据发生任何更改时必须返回新值实例,即它强制执行不变性。并且它不会强制您的 reducer 的特定形式。因此,您的问题实际上不是关于 redux 方法,而是关于一般的 javascript 任务如何以不可变的方式执行数据转换。

从我看来,您的代码对于这个特定任务来说绝对是正常的。

关于javascript - 在 redux reducer 中如何更新数组对象内的 1 个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45321690/

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