Если вы не собираетесь использовать this.props
в своем конструкторе, вам не нужно помещать его в super()
следующим образом:
constructor(){
super();
this.state = { randomState: "" };
this.randomProperty = null;
}
Но, в некоторых случаях, props
, переданный из родительского компонента, может быть доступен и использован внутри конструктора для инициализации состояния (эти реквизиты не зависят от смены реквизита). Передав props
в super
, теперь вы можете использовать this.props
внутри конструктора.
constructor(props){
super(props);
this.state = { randomVar: props.initialValue, propDependentState: this.props.someValue };
this.someVar = props.defaultValue;
this.anotherVar = this.props.openToChangesProp;
}
Обратите внимание, что те props
, которые непосредственно передаются в этот компонент, являются единственными реквизитами, доступными для конструктора. props
, которые отображаются из состояния с использованием приставки connect
включены в реквизиты, к которым здесь нельзя получить доступ, так как компонент еще не смонтирован.