[英]Stateful widget in Scaffold's body
我不明白為什么在顫振中不可能有這樣的結構:
//...
Scaffold(
//...
body: myPage(dataList[index])
)
//...
其中myPage是擴展statefulWidget並返回ListView的類。 它需要一個存儲在數組中的數據參數。 我想在更改索引時更改支架的主體,例如使用導航抽屜。
我注意到:
是的,每當我更改索引時,我都使用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),
);
}
}
您不應該將參數從父窗口小部件類傳遞到其狀態-您可以通過“ widget”指令訪問它們。 另外,請聽Lint-所有實例在主類中都是最終的。
class FirstFragment extends StatefulWidget {
final String data;
FirstFragment(this.data);
@override
_FirstFragment createState() => new _FirstFragment();
}
class _FirstFragment extends State<FirstFragment>{
@override
Widget build(BuildContext context) {
// TODO: implement build
return new Center(
child: new Text(widget.data),
);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.