javascript - Redux 使用扩展存储形状
问题描述
目前我的状态正在超越自己。我正在尝试这样做,因此它不会覆盖数据数组。我需要访问数据的特定索引。数据数组内部的对象是根据组件步骤添加的。但是当更新发生时,我需要在数据数组的特定索引上进行传播而不改变它。我怎么能用我得到的东西做到这一点。我知道我很接近了。
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 },
}],
};
}
}
解决方案
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;
})
};
}
}
}
推荐阅读
- c - 为什么我的 C 程序在不使用循环的情况下一直持续运行?
- vb.net - 如何在 vb.net 中从下到上浏览文本文件?
- java - Spring Boot JPA - 当“hibernate.dialect”在 JAVA 8u291 中不起作用时,对 DialectResolutionInfo 的访问不能为空
- robotframework - 你能把关键字分成多行吗
- javascript - Vue - 如何使用 lodash 去抖动
- jquery - 如何使用 ASP.NET MVC 视图模型刷新局部视图?
- python - 如何在 Python 中根据照度 (Lux) 获取 RGB 值?
- amazon-web-services - 身份验证错误 - 使用 aws cognito 做出本机反应
- apache-kafka - 在 KSQL 中定义模式时如何处理重复的列名
- javascript - 如何在不使用 ID 的情况下使用 JavaScript 更改 CSS