在您定义this
之后,使用this.props
和props
之间有区别吗?
constructor(props) {
super(props);
this.state = {
input: this.props.input,
input2: props.input2
};
}
在这种情况下,input
和input2
之间有什么区别?
答案 0 :(得分:12)
ES2015(ES6)课程的规则基本上归结为:
在子类构造函数中,在 super 被调用之前, 不能使用
。ES6类构造函数必须调用 super (如果它们是子类),或者它们必须显式返回一些对象来取代未初始化的对象。
因此在构造函数中调用 super(props)。道具和this.props是一样的。所以,
props === this.props // true
答案 1 :(得分:3)
基本上,在这种情况下它是相同的,但是如果你考虑整个组件,那么props
只有在你传递props
作为函数参数时才可用,例如下面的例子
componentWillMount(){
this.someFunc(this.props);
}
componentWillReciveProps(nextProps){
this.someFunc(nextProps);
}
someFunc(props) {
......
// in here props and this.props are completely different
as props is you latest props while this.props can be you previous props
}
虽然您可以从任何组件访问this.props
,但我希望这能为您提供想法
答案 2 :(得分:3)
没有差异。
props === this.props // true
答案 3 :(得分:0)
在构造函数中调用super(props)后没有区别。 您可以在这里进一步了解它:https://overreacted.io/why-do-we-write-super-props/