1. ホーム
  2. flutter

[解決済み] フラッターのライフサイクル

2022-11-12 03:01:34

質問

flutterには、以下のようなメソッドがありますか? Activity.resume() のような、ユーザーがアクティビティに戻ったことを開発者に伝えることができるメソッドはありますか?

ページBでインターネットからデータを取得し、ページAに戻ったとき、データが準備されたことをページAに知らせるにはどうしたらよいでしょうか。

どのように解決するのですか?

  1. createState() : FrameworkはStatefulWidgetをビルドするように指示されると、即座に以下のように呼び出します。 createState()

  2. mounted は真です。 というとき createState がステートクラスを作成すると buildContext がそのステートに割り当てられます。 buildContext は、簡単に言うと、ウィジェットツリーの中でこのウィジェットが置かれている場所です。もっと長い説明はこちら。 すべてのウィジェットには bool this.mounted プロパティがあります。があるとき、それは真になります。 buildContext が代入されると真になる。を呼び出すのはエラーである。 setState を呼ぶのはエラーです。

  3. initState() : これはウィジェットが作成されたときに最初に呼び出されるメソッドです (もちろん、クラスのコンストラクタの後です)。 initState は一度だけ呼び出されます。これは super.initState() .

  4. didChangeDependencies() : このメソッドは initState の直後に呼び出されます。

  5. build() : このメソッドはよく呼ばれます。これは必須であり、Widgetを返さなければなりません。

  6. didUpdateWidget(Widget oldWidget) : 親ウィジェットが変更され、このウィジェットを再構築しなければならなくなった場合 (異なるデータを与える必要があるため)、このウィジェットは、同じ runtimeType で再構築される場合、このメソッドが呼び出されます。 これは、Flutter が寿命の長い状態を再利用しているためです。この場合、いくつかのデータを再び初期化したいかもしれません、例えば initState .

  7. setState() : このメソッドはフレームワーク自身や開発者からよく呼ばれます。データが変更されたことをフレームワークに通知するために使用されます。

  8. deactivate() : DeactivateはStateがツリーから削除されるときに呼び出されますが、現在のフレームの変更が終了する前に再挿入されるかもしれません。このメソッドは基本的にStateオブジェクトがツリー内のあるポイントから別のポイントへ移動できるために存在します。

  9. dispose() : dispose() は、Stateオブジェクトが削除されたときに呼び出され、それは永久的なものです。このメソッドは、すべてのアニメーションやストリームなどの登録を解除し、キャンセルする必要がある場所です。

  10. mounted は偽です。 ステートオブジェクトは決して再マウントできず、次のような場合にエラーがスローされます。 setState が呼ばれた場合、エラーが投げられます。