flutter 在页面弹出时做更改
flutter do changes upon page gets pop
我有第 1 页和第 2 页。
第 1 页是我的基本页面,我正在为第 2 页做 Navigator.push
。在 Page2 中完成我的逻辑后,我将 Navigator.pop()
到 return 返回到 Page1。
我如何知道第 1 页已成为用户可见的主页?
我试过ModalRoute.of(context).isCurrent
,但我只想知道第 2 页何时从第 1 页弹出。
您可以 await
让 Page1
完成并传递 Page2
所需的一些数据,以确保 Page2
已从导航器堆栈中弹出。
第 1 页
bool result = await Navigator.push(context,..);
第 2 页
Navigator.pop(context,"some data");
然后你的 result
将保持值 "some data" 如果它在 Page1
上。你可以类似地传递一个布尔值或其他所需的数据并比较它以了解 Page2
已弹出。
第 2 页
//here value is dynamic so you can send any type of data here
Navigator.pop("value");
第 1 页
Navigator.pushNamed(context, Page2.routeName)
.then((value) {
//here you will get value that you passed in Page2 of any type
});
我有第 1 页和第 2 页。
第 1 页是我的基本页面,我正在为第 2 页做 Navigator.push
。在 Page2 中完成我的逻辑后,我将 Navigator.pop()
到 return 返回到 Page1。
我如何知道第 1 页已成为用户可见的主页?
我试过ModalRoute.of(context).isCurrent
,但我只想知道第 2 页何时从第 1 页弹出。
您可以 await
让 Page1
完成并传递 Page2
所需的一些数据,以确保 Page2
已从导航器堆栈中弹出。
第 1 页
bool result = await Navigator.push(context,..);
第 2 页
Navigator.pop(context,"some data");
然后你的 result
将保持值 "some data" 如果它在 Page1
上。你可以类似地传递一个布尔值或其他所需的数据并比较它以了解 Page2
已弹出。
第 2 页
//here value is dynamic so you can send any type of data here
Navigator.pop("value");
第 1 页
Navigator.pushNamed(context, Page2.routeName)
.then((value) {
//here you will get value that you passed in Page2 of any type
});