通过类函数间接更新状态
2016-05-19
53
我有一个 Person 类,它具有 setName 和 getName 函数。
var person = new Person("Johnny");
this.setState({personObj: person})
如果我调用 this.state.personObj.getName(); 我会按预期获得 Johnny。
我知道您不应该直接更新状态,例如
this.state.name = 'Johnny'
但是使用类函数调用来更新类中的属性是否不好,例如
this.state.personObj.setName("Joe");
看起来像一个灰色区域。
1个回答
虽然您可以通过函数更新对象的实例,但除非您调用 this.setState,否则它不会帮助/影响组件状态。您可以从先前的状态创建一个新的状态对象,然后使用
this.setState
。您必须调用
this.setState
才能使组件采用新状态。
agenthunt
2016-05-19