フラッターで次のような構造にすることができない理由がわかりません。
//...
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),
);
}
}