2017-12-19 3 views
0

私は2つのステートフルな状態、ABCStateとXYZStateが、私はABCState他のステートフルクラスのsetState()をトリガする方法は?

class ABCState extends State<ABC> { 

} 

& 

Class XYZState extends State<XYZ> { 
    // Call .setState() of ABCState 
} 

の再描画をトリガすることができるようにXYZStateからABCStateにsetState()を呼びたいきた私は、キーで遊んしようとしましたが、何とかすることができませんそうする。あなたの助けを歓迎

+0

なぜあなたはそれをしたいですか?使用事例? –

+0

@HemanthRaj私の使用目的は、ユーザーアクションのためにすべてのウィジェットを再描画することです。 –

+0

'setState'を呼び出すと、状態が変更されたウィジェットだけが再描画されます。なぜあなたはすべてのウィジェットを再描画しますか?あなたはレンダリングプロセスに多くの負荷をかけています。 –

答えて

2

これは悪い考えです。 しかし、あなたはそれをしたい場合は、以下のことができます。

  • ご希望のステートフルウィジェットの子供の使用BuildContext
  • 状態/コンテキスト/ウィジェットを取得することができます使用GlobalKey、。使用するcontext.ancestorStateOfType(const TypeMatcher<MyStatefulWidget>());
関連する問題