我知道他们是类似的问题,但是我仍然对以下内容感到困惑。
何时使用这种状态
Class Example extends Component {
state = {
name: ''
}
}
在构造器道具上
Class Example extends Component{
constructor(props) {
super(props);
this.state = {
name: ''
}
}
}
它与方法绑定有关吗?因为我可以很好地使用onChange而不用像这样绑定它:
this.onChange = this.onChange.bind(this)
我仍然可以像这样致电onChange
onChange = (e) => {
}
<Component onChange = {this.onChange} />
答案 0 :(得分:2)
示例中的差异纯粹是语法上的,而不是功能上的。您可以同时使用这两种效果。
通常,当您要基于某些运行时逻辑(例如,基于传递的props)来计算状态时,可以在构造函数中分配状态。在这种情况下,您将这样写:
class Example extends Component {
constructor(props) {
this.state = {
fullName: props.firstName + ' ' + props.lastName
}
}
}
答案 1 :(得分:1)
在反应新版本中,您可以直接初始化状态,而无需使用
constructor(Props){
super(props)
this.state ={
}
}
它们都是正确的。您可以使用它们中的任何一个。
我会选择第一个,因为它的代码更少
,对于任何方法,您都可以直接使用它们,例如
onChange = (e) => {
}
<Component onChange = {this.onChange} />
在新版本的react中无需绑定方法