内部アクセスコンポーネントの状態を私はどこでも問題は、私ができることですA.シーンを変更するA.changeScene(sceneVal)
を使用してから変更シーンを呼びたいこのはネイティブリアクト:静的関数
export class A extends Component{
constructor(props){
this.state = {
scene:0
}
}
static changeScene(scene){
this.setState({scene:scene})
}
}
のように定義されたコンポーネントを持っていますアクセスできません.setStateこのエラーが発生しましたUnhandled JS Exception: this.setState is not a function.
Aコンポーネントが既にマウントされていると確信しています。私は、コンストラクタでグローバル変数var self = null;
を定義することによって、およびコンストラクタself = this
内でこのエラーを回避することができますが、私は
あなたはコンポーネント 'A'の唯一の単一のインスタンスがあることを、確認することができますか?もしそうなら、 'this'を静的変数に代入するのは合理的です。そうでない場合は、質問を再考する必要があります。 –
静的関数がコンテキストを保持するために 'bind'を必要とするかどうかわかりません。あなたはそれを試すことができます – jose920405
静的関数はあなたの非静的関数にアクセスできる 'this'にアクセスすることは決してありません。それぞれのインスタンスが持っているように、非静的メソッドについて考えて、静的メソッドについて考えてください。 –