javascript react将对象添加到对象

qojgxg4l  于 2023-06-04  发布在  Java
关注(0)|答案(1)|浏览(178)

在一个组件中,我有:

constructor() {
   super();
     this.state = {
     lists: [], 
     items: {}  
    };
 }

 handleAddList(s) {
  
    var temp= this.state.lists.slice(0,this.state.lists.length);
    temp.push(s);

    this.setState({lists: temp},function(){
    
    var toAdd={};
    toAdd[s]=[];

如何将toAdd添加到this.state.items
更新,
我想我得到了它与以下工作:

var ourLists = this.states.items;
ourlists[s] = [];

 and then just setState.

我在理解两行代码的基本语法时遇到了麻烦:

toAdd[s] = [];  // is this just the way you specify a key value pair where the value is an array?
dhxwm5r4

dhxwm5r41#

我为你创建了一个简单的codepen。一般来说,如果你想在你的状态下给一个对象添加新的值,你不能同时做这两件事,首先你需要创建一个键,然后给予它一个值。(这是老办法):

var obj = {};
obj["newKey"] = [];
obj.newKey = [<some value>]

现在你可以使用Object.assign(),它将帮助你添加一个新的属性到一个对象,同时保持秩序。我的意思是:

Object.assign(
 {<typically new empty object>},
 {<the old object you want to change>},
 {<the new field + value to add>}
)

请确保保持顺序,否则旧值将覆盖新值!!!.

完成之后,您可以将新状态的值设置为您创建的新对象。

相关问题