Kin*_*ics 5 android ios dart flutter
我写了一个检查,如果条件为真,然后导航到下一页。但是,每当该条件返回 true 并且我打算导航时,我都会收到错误消息
class BuyTickets extends StatefulWidget {
@override
_BuyTicketsState createState() => new _BuyTicketsState();
}
class _BuyTicketsState extends State<BuyTickets> {
@override
void initState(){
...
if(condition){
//Skip to next page
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) => SelectSeat(data: widget.data)
)
);
}
super.initState();
}
@override
Widget build(BuildContext context) {
return new Scaffold(
...
)
}
Run Code Online (Sandbox Code Playgroud)
错误:
请问我该如何解决?
它抱怨说它找不到父对象,因为与小部件关联的渲染对象没有完全创建和安装。
在所有这些情况下,您需要将调用延迟到渲染对象安装的那一刻。一种方法是在第一帧之后执行它。
@override
void initState() {
super.initState();
if(condition){
WidgetsBinding.instance.addPostFrameCallback((_) async {
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) => SelectSeat(data: widget.data)
)
);
});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3608 次 |
| 最近记录: |