我有一个像这样定义的对象:
import React, { Component } from 'react';
import './App.css';
class App extends Component {
constructor() {
super();
this.state = {
lists: ["Dogs", "Cats"],
items: {Dogs:[], Cats:[]}
};
}
handleAddItem(item) {
console.log(item);
}
我有变量
console.log(item);// output {Dogs:[{name: "lofi"}]}
我不知道如何验证item
(Dogs
或Cats
)中的哪个属性,以便我可以更新对象项{}以使其成为我的像这样的例子:
items{Dogs:[{name: "lofi"}], Cats:[]}
答案 0 :(得分:1)
您可以使用Object.keys
方法。
items[Object.keys(item)[0]] = item[Object.keys(item)[0]]
工作解决方案
let state = {
lists: ["Dogs", "Cats"],
items: {Dogs:[], Cats:[]}
};
let item = { Dogs:[{name: "lofi"}] };
state.items[Object.keys(item)[0]] = item[Object.keys(item)[0]]
console.log(state.items);

答案 1 :(得分:1)
您可以在Object.assign
上使用state.items
函数,它将使用第二个参数中给出的属性添加/更新给定对象。
let state = {
lists: ["Dogs", "Cats"],
items: { Dogs:[], Cats:[] }
};
let item = { Dogs: [ {name: "lofi"} ] };
Object.assign(state.items, item);
console.log(state);