当前,我的状态处于压倒一切。 我正在尝试这样做,因此它不会覆盖数据数组。 我需要访问数据的特定索引。数据数组内部的对象是根据组件步骤添加的。但是,当发生UPDATE时,我需要对数据数组的特定索引进行扩展,而无需对其进行突变。我怎样才能用我得到的东西做到这一点。我知道我要走了
const initialState = {
index: 0,
data: [{}],
};
const reducer = (state = initialState, action) => {
switch (action.type) {
case UPDATE: {
return {
...state,
data: [{
...state.data[state.count],
[action.name]: { value: action.value },
}],
};
}
}
答案 0 :(得分:1)
每次更新发生时,您都将覆盖state.data
。您正在寻找的是这样的:
const initialState = {
index: 0,
data: [{}],
};
const reducer = (state = initialState, action) => {
switch (action.type) {
case UPDATE: {
return {
...state,
data: state.data.map((value, index) => {
if (index === state.count) {
return {
...state.data[state.count],
[action.name]: { value: action.value },
}
}
return value;
})
};
}
}
}