我想我并不擅长JavaScript
这就是我看到反应组件初始化的方式。初始设置状态在构造函数内完成
export class Counter extends React.Component {
constructor(props) {
super(props);
this.state = {count: props.initialCount};
}
为什么总是super(props)
。这需要吗?打电话超级必要吗?如果没有被称为超级会怎么样?
答案 0 :(得分:2)
如果你想在类的构造函数中访问this.props,你需要在super中传递props。
class Base extends React.Component {
constructor(props) {
console.log('Base', props);
}
render() {
return <div>Base {this.props.name}</div>;
}
}
class Sub extends Base {
constructor(props) {
super({
name: 'New name prop'
});
console.log('Sub', arguments);
}
}
var sub = <Sub name="Gomic" />
React.render(sub, document.getElementById('container'));
默认情况下,道具未在构造函数中指定。它们在方法React.createElement中被赋值。因此,只有当超类的构造函数手动将super(props)
传递给props
时,才应调用this.props
。当您延长React.Component
调用super(props)
方法时,props
无效。
<强>参考:强>