我开始了:
constructor() {
super();
this.state = {
lists: ['Dogs','Cats'],
items: {Dogs: [{name: "Snoopy"}, {name: "Lola"}, {name: "Sprinkles"}],
Cats: [{name: "Felidae"}, {name: "Garfiled"}, {name: "Cat in the Hat"}] }
};
}
然后我有我的addItem函数:
handleAddItem(s) {
var key = Object.keys(s)[0];
var value = s[key];
var allItems = {...this.state.items};
allItems[key].push({name: value});
this.setState({items: allItems});
}
在其他地方,我将s定义为:
var s={};
s[this.props.idName] = this.refs.id.value;
这样可以工作,但我想知道是否这是将元素添加到items的一个键中的正确方式。AllItems 实际上指向 this.state.items,我认为它应该是一个深拷贝,但我不确定如何做到这一点。
看起来 items 是一个容纳键/值对且值是数组的对象。对吗?我在哪里可以学习如何操作这样的结构?
this.state = { dogs: [], cats: [] }
?可能会让编程变得更简单。 - Andy