Mak*_*sim 4 javascript object ecmascript-6 reactjs
状态看起来像这样
{
ownRecipe: {name:""}
}
Run Code Online (Sandbox Code Playgroud)
现在我需要更改名称属性,这不起作用
this.setState({ownRecipe[name]:"Pineapple pizza"});
Run Code Online (Sandbox Code Playgroud)
这可行,但也许有更好的方法?
let ownRecipeCopy = {}
for(let key in this.state.ownRecipe){
ownRecipeCopy[key] = this.state.ownRecipe[key];
}
ownRecipeCopy.name = e.target.value;
this.setState({ownRecipe: ownRecipeCopy});
Run Code Online (Sandbox Code Playgroud)
编辑:谢谢大家的回答
传播原始对象并更改所需的属性:
this.setState(prevState =>({
ownRecipe : {
...prevState.ownRecipe,
name : 'new name'
}
}));
Run Code Online (Sandbox Code Playgroud)