Javascript 如何在react中设置记录内的键的状态
当我尝试这样做时,我遇到了麻烦,我想设置状态以在记录中输入密钥 示例:Javascript 如何在react中设置记录内的键的状态,javascript,reactjs,Javascript,Reactjs,当我尝试这样做时,我遇到了麻烦,我想设置状态以在记录中输入密钥 示例: constructor(props){ super(props); this.state = { data:{"firstName":"XXXXX",lastName:"YYYYY",Rank:1} } } 我在初始状态下声明了这一点,在这里我只想更改特定的键,比如秩,因为我这样写: this.Setstate({data.Rank:2}) 它给出了一个错误 任何人给我建议如何解决它,任
constructor(props){
super(props);
this.state = {
data:{"firstName":"XXXXX",lastName:"YYYYY",Rank:1}
}
}
我在初始状态下声明了这一点,在这里我只想更改特定的键,比如秩,因为我这样写:
this.Setstate({data.Rank:2})
它给出了一个错误
任何人给我建议如何解决它,任何帮助都非常感谢请仔细阅读此答案 您必须将
this.state
扩展为newState
,在newState
中进行更改,然后setState(newState)
您可以对
newState
进行任意类型和任意数量的修改,然后使用setState()
,而不必怀疑您正在执行的操作。您正在将状态设置为不正确
如果您有一个组件:
React.createClass({
getInitialState: function(){
return {
data: {"firstName":"XXXXX",lastName:"YYYYY",Rank:1}
};
}
});
您需要执行以下操作:
var data = this.state.data;
data.Rank = 2;
this.setState({
data: data
});
怎么了
this.Setstate
应该是this.Setstate
Raspberry提到的意外标记({data.Rank:2}),请检查您是否在getInitialState
中设置了data
,是的,我仅将其声明为初始状态。请在问题中发布您的getInitialState
方法,以便更好地参考。他想对this.state.data.Rank
进行更改。上面的答案对this.state.rank
进行了更改。如果初始状态
的格式为返回{'data':data},请修改.yah我想更改特定的键
,然后这个.setState({data.Rank:2})
应该可以工作。上面的格式怎么样?我在constructorsi.e中声明了它,我需要声明一个虚拟记录,并将该记录设置为初始分配的记录?是的。这是最安全的方法,您可以继续修改您的虚拟对象,而不必担心这一点。state
不变性。除此之外,还有其他方法吗?
var data = this.state.data;
data.Rank = 2;
this.setState({
data: data
});