Ann*_*ine 1 javascript ecmascript-6 reactjs
我正在努力在 React 中设置我的一个对象的状态。我拥有的代码:
export class RRHN_App extends React.Component {
constructor(props) {
super(props);
this.startLoadingItems();
this.fetchData();
this.state = {
items: [],
itemStatus : [],
selectedItem: null,
prefsDialog: false,
preferences : {
color : "brown",
listSize : 800
}
}
}
toggleItem(item) {
console.log("Selected item: ", item);
if( this.state.selectedItem &&
item.id === this.state.selectedItem.id) {
this.setState({selectedItem: null});
} else {
let ItemID= item.id;
let newSeen = {ItemID : "seen"};
this.setState({selectedItem: item});
this.setState({itemStatus: newSeen});
}
console.log(this.state.itemStatus)
}
fetchData() {
request.get("http://localhost:3000/itemStatuses")
.end( (err,response) => {
this.setState({itemStatus: response.body})
})
}
startLoadingItems() {
request.get("http://localhost:3000/hn/topstories")
.end( (err,response) => {
this.setState({items : response.body})
})
}
}
Run Code Online (Sandbox Code Playgroud)
打印时itemStatus
我得到这个:
{16490176: "seen", 16497964: "seen", 16514428: "read", 16542395: "read", 16566536: "read"}
Run Code Online (Sandbox Code Playgroud)
当代码执行时,itemStatus
看起来像这样:
{ItemID: "seen"}
Run Code Online (Sandbox Code Playgroud)
如何将 item.id 和“seen”的键值对添加到状态?
除了 Rajesh 指出的动态键之外,还要注意setState
将浅合并现有状态和新状态:尝试
this.setState({[ItemId]: 'seen'})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15778 次 |
最近记录: |