Flutter 如何重置颤振中的Navigator.pop回调值?
请接受我下面的解释。 我有一个包含2个底部导航栏项的页面:Flutter 如何重置颤振中的Navigator.pop回调值?,flutter,callback,navigator,Flutter,Callback,Navigator,请接受我下面的解释。 我有一个包含2个底部导航栏项的页面: Page1(), Page2(), 在Page1中有一个按钮,可导航到另一个名为PostSomethingPage的页面: // in Page1 onPressed: () => Navigator.push( context, MaterialPageRoute<bool>(builder: (context) => PostSomethingPage())) .then(
Page1(),
Page2(),
在Page1
中有一个按钮,可导航到另一个名为PostSomethingPage
的页面:
// in Page1
onPressed: () => Navigator.push(
context, MaterialPageRoute<bool>(builder:
(context) => PostSomethingPage()))
.then((isPostSuccess) => isPostSuccess
? print('is Success!') : print('Failed!'));
然后,一旦我们返回到Page1
,就会收到来自回调的值,并相应地执行print语句,此时一切似乎都正常
但是当我导航到Page2
并返回到Page1
注意:此时,我已从
Page1
=>PostSomethingPage
=>返回到Page1
,然后返回Page2
因为当我再次返回到
Page1
时,print语句将根据最后一个已知值再次打印。但是我想要的是将回调值重置为空,而不是使用true
或false
使用变量存储PostSomethingPage返回的值
//our variable initialized with null
bool isPostSuccess;
@override
Widget build(BuildContext context) {
return FlatButton(onPressed: () async {
//going to PostSomethingPage from Page1
isPostSuccess = await Navigator.of(context).push(
MaterialPageRoute<bool>(builder: (context) {
return PostSomethingPage();
})
);
}, child: Text(''));
//we are back at the Page1
//isPostSuccess will not be null
}
//我们的变量初始化为null
bool是成功的象征;
@凌驾
小部件构建(构建上下文){
返回扁平按钮(ON按下:()异步{
//从第1页转到Postsomething页
isPostSuccess=wait Navigator.of(context.push)(
MaterialPage路线(生成器:(上下文){
返回PostSomethingPage();
})
);
},child:Text(“”));
//我们回到第一页
//iPostSuccess将不为空
}
现在,在转到第2页之前,只需再次将isPostSuccess的值设置为null
//going to Page2 from Page1
isPostSuccess = null;
Navigator.of(context).push(
MaterialPageRoute<bool>(builder: (context) {
return Page2();
})
);
//从第1页转到第2页
isPostSuccess=null;
导航器.of(上下文).push(
MaterialPage路线(生成器:(上下文){
返回第2页();
})
);
callBackResult=null
在导航到第2页之前,还是我遗漏了一点?我不确定您所说的callBackResult
是什么意思,我如何从Page1
访问它?
//going to Page2 from Page1
isPostSuccess = null;
Navigator.of(context).push(
MaterialPageRoute<bool>(builder: (context) {
return Page2();
})
);