gpt4 book ai didi

android - 是否可以使用 navigator.pop 刷新或重新加载页面...比如第 1(nav.push=>2)页面到第 2 页,然后从第 2(nav.pop,值)返回到第 1 页?

转载 作者:行者123 更新时间:2023-12-03 02:40:50 28 4
gpt4 key购买 nike

我想使用 navigator.pop 将值从第 2 页传递到第 1 页,并使用 initstate 中的新值刷新或重新加载我的第 1 页或任何其他解决方法?
我能够在第一页中获取这些值,但无法使用 initstate 中的新值刷新或重新加载页面我想在 API n 中传递新数据的地方得到响应......
有什么帮助吗?
我正在从这个重定向到列表页面......

getBrand(BuildContext context) async {
tempBrand = await Navigator.push(context,
MaterialPageRoute(builder: (context) => BrandList(widget.subCatID)));
selectedBrand = tempBrand.name;
selectedBrandID = tempBrand.id;
}
现在我在 navigator.pop 中传递这些值
在这里获取值(value)并传回第一页。
Container(
padding: EdgeInsets.all(10),
child: ListView.separated(
separatorBuilder: (context, index) =>
Divider(color: Color(0xffcccccc)),
itemCount: prodBrands.length,
itemBuilder: (BuildContext context, int index) {
return GestureDetector(
child: InkWell(
onTap: () {
tempProdBrand = ProdBrandListModel.Message(
id: prodBrands[index].id,
name: prodBrands[index].name,
);

Navigator.pop(context, tempProdBrand);

},
child: Container(
child: Text(prodBrands[index].name),
padding: EdgeInsets.all(10.0),
),
),
);
}),
)
想在这里使用新值...
submitProduct() {
api
.newbiz(
selectedBrandID,
)
.then((response) {
setState(() {
productID = response.message;
});
});
setState(() {});
}
当我使用 pop 函数中传递的新值返回第一页时,只想从 initstate 或任何其他方式刷新我的页面。

最佳答案

从 Page1 导航到 Page2

通常你使用 Navigator.push()
例如:

// Page1
Navigator.push(context, MaterialPageRoute(builder: (context) => Page2()));

当您在 Page2 中时,您会做一些工作,例如将一些数据保存在共享首选项中,然后返回到 Page1 并刷新 Page1 以从共享首选项中获取新数据,您可以做的是使用
//Page2
Navigator.pop(context);

这还不足以刷新您的 Page1
所以你需要在 Page1 Navigator 中附加一个 .then 作为回调,当你从 page2 弹出时它将被调用,并且 .then 应该有一个设置状态来触发重建只需在设置状态内调用一个东西来导致重建
像这样:
//Page1
Navigator.push(context, MaterialPageRoute(builder: (context) => Page2())).then((value) {
setState(() {
// refresh state of Page1
});
});

关于android - 是否可以使用 navigator.pop 刷新或重新加载页面...比如第 1(nav.push=>2)页面到第 2 页,然后从第 2(nav.pop,值)返回到第 1 页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55769939/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com