私はReduxのを使用していて、私のコンポーネントは次のように宣言されている1つに、二つの異なるプロジェクトを持っている:Typescriptとjsx、なぜオブジェクトのライフサイクルでは、静的に宣言された状態はnullですか?
class Foo extends React.component<any, any> {
public static state: any = {
bar: ''
}
}
const mapStateToProps = (state) => {
return {}
}
export default connect(mapStateToProps)(withRouter(Foo))
、その後、私は私のコンポーネントは次のように宣言されているReduxの、せずに別のプロジェクトを持っている:
class Foo extends React.Component<any, any> {
public static state: any = {
bar: ''
}
}
export default Foo;
私はreduxプロジェクトで自分の状態を静的に宣言しようとしましたが、実行時にピックアップされません。
EDIT:
私の質問には、明確化のためにいくつかのより多くのコードは十分明らかではないようだ。
class Foo extends React.component<any, any> {
public static state: any = {
bar: ''
}
render() {
console.log(this.state); // null <- why?
return (...);
}
}
const mapStateToProps = (state) => {
return {}
}
export default connect(mapStateToProps)(withRouter(Foo))
非Reduxのコードに対し:
class Foo extends React.Component<any, any> {
public static state: any = {
bar: ''
}
render() {
console.log(this.state) // { bar: '' } <- works! why?
return (...)
}
}
export default Foo;
更新された質問を確認してください。別の方法で宣言されている状態が設定されていないという私の疑問について十分にはっきりしていないようです。小道具はうまくいきます、私はconnectとmapDispatchToPropsを使う方法を知っています、それは私を混乱させる州の宣言です。 – ospfranco
私は自分の答えを更新しました。申し訳ありませんが、何が起こるのかをよりよく説明することはできません。 –
うん、私はコンストラクタの状態を宣言するだけ知っている、とにかく感謝! – ospfranco