嗨,伙计们,我有一个问题,从一开始,我会提到我已经尝试过这个和这个
我的情况如下。我有API,它发送给我
根目录处于组件状态!
Root: {
RootVal1: {
Prop1: '',
Prop2: '',
Prop3: '',
}
RootVal2: [
PropObj1: {
NestedProp1: '',
NestesPropObj: {
NestedEvenMoreProp1: '',
NestedEvenMoreProp2: '',
NestedEvenMoreProp3: ''
}
},
PropObj2: {
NestedProp1: '',
NestesPropObj: {
NestedEvenMoreProp1: '',
NestedEvenMoreProp2: '',
NestedEvenMoreProp3: ''
}
},
PropObj3: {
NestedProp1: '',
NestesPropObj: {
NestedEvenMoreProp1: '',
NestedEvenMoreProp2: '',
NestedEvenMoreProp3: ''
}
},
]
}
我如何更新Prop1
,Prop2
,Prop3
,NestedEvenMoreProp1
,NestedEvenMoreProp2
,NestedEvenMoreProp3
与setState
?最后一个约束是我不能更改root的名称(我不能将其重命名为newRoot等)
我尝试的是调用这个函数:
/**
* @summary update state using immutable object
* @param {Object} name of key and value for update
* @returns {string} Promise that returns
*/
updateStateHelper = target => new Promise((resolve) => {
const updatedState =
update(this.state[target.name], { $merge: { [target.name]: target.value } });
this.setState(prevState => ({
...prevState,
updatedState,
}), () => resolve(this.state[target.name]));
});
因此:
// data[0] and data[1] is just copy of RootVal2 and RootVal1, with changed values.
data[0]
data[1]
const root = Object.assign({}, this.state.root);
root.RootVal2 = [...data[0].RootVal2];
root.RootVal1 = {...data[1]};
//Here root displays edited
console.log(root);
this.updateStateHelper({name: 'root', value: root,})
.then(() => {
//Here root displays without the edit
console.log(this.state.root);
resolve('Success');
});
您可以使用Spead运算符。
示例(更新Prop1
,Prop2
和Prop3
):
this.setState({
Root:
...this.state.Root,
RootVal1: {
...this.state.Root.RootVal1,
Prop1: "Prop1 value here",
Prop2: "Prop2 value here",
Prop3: "Prop3 value here"
}
}
);
更多信息在这里(感谢@TelmosDias)
我有一门java课 在上面的场景中,示例具有子示例,这又是示例列表。此嵌套可以是 n 级。我想实现的是有一个示例列表,即扁平化上面的对象并将所有示例收集到最终列表中(收集所有n级示例)。一个明显的方法是递归。在Java中有什么方法可以更有效地实现它。我尝试了一些java 8概念,但它们不符合要求。
我想知道是否有一种方法可以使用useState()更新React中的嵌套对象状态
我试图通过一个reducer在我的react.js/redux应用程序中设置一个深度嵌套的对象,但是对象更改并没有传播到我的组件中。我应该如何更新和mapStateToProps这样的对象? 我已经尝试了…在我的reducer中添加我的操作的有效负载,在mapStateToProps中映射一个更高级别的对象,并将我映射到组件道具的对象扁平化。 我的初始状态: 结果是我的组件没有显示Redux的状态
问题内容: 一个作业有一个真正的问题(和头痛)… 我在入门编程班上,我必须写一个函数,给定一个列表,该函数将返回其达到的“最大”深度。例如:[1,2,3]将返回1,[ 1,[2,3]]将返回2 … 我已经编写了这段代码(这是我能得到的最好的T_T) 但是,它显然不像应有的那样工作,因为如果存在不计入最大深度的列表,它仍然会增加计数器… 例如:当我将函数与[1,2,[3,4],5,[6],7]一起使
问题内容: 我有一个对象,它可以是任何数量的深度,并且可以具有任何现有属性。例如: 在此我想设置(或覆盖)属性,如下所示: 属性字符串可以具有任何深度,并且值可以是任何类型/事物。 如果属性键已经存在,则不需要合并对象和数组作为值。 前面的示例将产生以下对象: 如何实现这种功能? 问题答案: 此函数使用您指定的参数应添加/更新容器中的数据。请注意,您需要跟踪架构中的哪些元素是容器,哪些是值(字符串
对于我正在使用的插件,我必须具有如下状态: 如何在不设置其余访问权限的情况下设置hospital_id状态? 这似乎删除了一切,但hospital_id: