React使用React Immutability Helper或immutable js合并对象的不可变数组
React merge immutable array of objects using React Immutability helpers or Immutable js
我正试图使用Reacts Immutability Helper或immutable js合并一个不可变的对象数组。我正在尝试创建一个仅包含名称已更改的记录的列表。如果在提交之前名称被多次更改,我会尽量避免在列表中创建重复,这会让我相信合并是我需要走的路。下面是我努力实现目标的一个例子。
var objArray = [{id:4, name:'bar'}, {id:10, name:'test'}];
var newObj = {id:4, name:'foo'};
var updatedEntries = update(this.state.nameChanges, {$merge: {newObj});
我正在寻找的结果是:
objArray = [{id:4, name:'foo'}, {id:10, name:'test'}]
我似乎得到的结果是:
objArray = [{id:4, name:'foo'}]
我尝试过使用Facebook React免疫助手,但似乎无法得到我需要的结果。我似乎有点难以理解合并函数的实际作用。感谢您的帮助。
感谢
您就快到了,您需要做的是首先筛选出您想要的对象,然后通过objArray
中的索引使用merge
。官方文档显示了如何进行
var objArray = [{id: 4, name: 'bar'}, {id: 10, name: 'test'}];
var i = -1;
objArray.map(function (obj, index) {
if (obj.name === 'bar') i = index;
});
var mergeObject = {};
mergeObject[i] = {$merge: {name: 'Foo'}};
var newState = update(objArray, mergeObject);
>> [[object Object] {
id: 4,
name: "Foo"
}, [object Object] {
id: 10,
name: "test"
}]
相关文章:
- 在react函数中渲染对象数组
- React-从简单对象树创建dom
- 在React中渲染子对象,丢失道具数据
- 访问要在 React Native Text 组件中显示的对象数组
- React.js+Flux-正确初始化存储中的数据对象
- React选择性地不将新道具传递给渲染对象
- TypeError:undefined不是对象(正在评估'this.props')-React Nati
- 如何从 React 中的事件对象访问自定义属性
- React是装载前处理空对象的最佳方式
- 从react routers browserHistory对象获取当前页面路径
- 测试使用 jQuery 和窗口对象的 React 组件
- JSON 对象 - 在 React Native 中访问值
- 在 React Native 中对对象数组进行动画处理
- 使用 Javascript/React.js 查找对象的数组索引
- 使用 React 创建的表单不会更新支持状态对象
- 在 react 中对字符串应用 span 会返回 [对象对象],而不是给我跨度文本
- 在 React 中从数组中删除对象
- 通过带有对象子级的数组进行 React 本机映射 - 工作方式与在 react web 中不同
- 类型错误:createElement上的React对象未定义
- 不能访问React对象状态上的object属性,即使它存在.返回未定义