1

フラッターで次のような構造にすることができない理由がわかりません。

//...
Scaffold(
  //...
  body: myPage(dataList[index])
)
//...

myPage は、statefulWidget を拡張して ListView を返すクラスです。配列に格納されているデータ パラメータが必要です。たとえば、ナビゲーション ドロワーでインデックスを変更するときに、足場の本体を変更したいと考えています。

きがついた:

  • myPage が statelessWidget を拡張する場合、すべて正常に動作します。
  • statefulWidget を拡張するさまざまなページ クラスがある場合、すべて正常に動作します。
  • しかし、コンテンツを変更するためにデータを必要とする myPage がある場合、何も起こらず、変更されず、最初のページにとどまります

はい、インデックスを変更するたびに setState メソッドを使用してレイアウトを更新しました。

これはバグですか、それとも何かを見逃しましたか? バグでない場合、回避策として何ができますか? 前もって感謝します

アップデート:

とにかくこの問題があるところに奇妙なことは何もない、より単純な別のページのコードを投稿します(このページではstatelessWidgetを使用できることはわかっていますが、とにかく動作するはずです):

class FirstFragment extends StatefulWidget {
  String data;
  FirstFragment(this.data);

  @override
  _FirstFragment createState() => new _FirstFragment(data);

}

class _FirstFragment extends State<FirstFragment>{
  String data;
  _FirstFragment(this.data);

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return new Center(
      child: new Text(data),
    );
  }
}
4

1 に答える 1