gpt4 book ai didi

javascript - 如何使用 redux 替换数组中的值?

转载 作者:行者123 更新时间:2023-11-29 16:06:22 25 4
gpt4 key购买 nike

我正在尝试覆盖我的 Redux 状态中的特定值,它是一个数组。我已经得到了索引以及新文本的值。我只是不确定覆盖以前文本的最佳方法。到目前为止,这是我的 reducer 。 UPDATE_LINK 是我遇到的问题。

export function linkList(state = [], action) {
switch(action.type) {
case 'ADD_LINK':
var text = action.text;
console.log('Adding link');
console.log(text);
return {
...state,
links: [text, ...state.links]
};
case 'DELETE_LINK':
var index = action.index;
console.log('Deleting link');
return {
...state,
links: [
...state.links.slice(0, index),
...state.links.slice(index + 1)
],
};
case 'UPDATE_LINK':
var index = action.index;
var newText = action.newText;
console.log(action.newText);
console.log(action.index);
return {
...state,
// How do I update text?
}
default:
return state;
}
};

export default linkList;

最佳答案

你可以使用 Array.protoype.map返回可用的现有条目和索引匹配的新条目:

var index = action.index;
var newText = action.newText;
return {
...state,
links: state.links.map((existingLink, currentIndex) => index === currentIndex ? newText : existingLink)
}

或者,按照您现有的DELETE_LINK 逻辑:

return {
...state,
links: [
...state.links.slice(0, index),
newText,
...state.links.slice(index + 1)
],
};

关于javascript - 如何使用 redux 替换数组中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40866715/

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