复制数组后redux反应更新数组
redux react update array after copying array
我有一个问题,我遇到了复制后无法更新数组的问题。
如果我复制一个数组而不更新 id,当我在输入中键入内容时,文本将以与复制它相同的方式出现。
这是我的初始状态
const initialState = [
{
id: random numbers,
options: [{ id: random numbers , value: '' },
],
},
];
会有很多选择
我只想更新选项 id
这是我试过的
case COPY_QUESTION: {
const newArray = [...state];
const copyQuestion = newArray[action.payload];
copyQuestion.options.map((option) =>
Object.assign({}, option, {
id: random number,
}),
);
return [...state, copyQuestion];
}
感谢阅读我的问题。
这是由于call-by-reference造成的。
正如我在您的代码中看到的那样,
您正在复制数组的引用,这可能会在您键入时覆盖原始数组的详细信息。您可以使用 Javascript Object Prototype
复制原始数组的值
因此,您需要破坏数组或破坏重复数组中的引用。
示例
let A = [a,b,c] //original Array
let B = JSON.parse(JSON.strigify(A)) // duplicate Array
我有一个问题,我遇到了复制后无法更新数组的问题。 如果我复制一个数组而不更新 id,当我在输入中键入内容时,文本将以与复制它相同的方式出现。
这是我的初始状态
const initialState = [
{
id: random numbers,
options: [{ id: random numbers , value: '' },
],
},
];
会有很多选择 我只想更新选项 id
这是我试过的
case COPY_QUESTION: {
const newArray = [...state];
const copyQuestion = newArray[action.payload];
copyQuestion.options.map((option) =>
Object.assign({}, option, {
id: random number,
}),
);
return [...state, copyQuestion];
}
感谢阅读我的问题。
这是由于call-by-reference造成的。 正如我在您的代码中看到的那样, 您正在复制数组的引用,这可能会在您键入时覆盖原始数组的详细信息。您可以使用 Javascript Object Prototype
复制原始数组的值因此,您需要破坏数组或破坏重复数组中的引用。 示例
let A = [a,b,c] //original Array
let B = JSON.parse(JSON.strigify(A)) // duplicate Array