我正在尝试使用 Flutter 制作一个电子商务应用程序。当我单击产品时,它将显示包含产品详细信息的底页。这个想法是,一旦我将产品添加到购物车,购物车图标顶部就会出现一个数字,详细说明您在购物车中保存的产品数量。
一旦我点击“保存到购物车底部”,底部表单将关闭,但是父页面不会刷新,并且仍然显示之前保存的金额
void openBotomSheet(Product product){
showMaterialModalBottomSheet(
context: context,
builder: (context) => ClientProductsDetailPage(product: product),
);
我尝试使用在互联网上找到的解决方案,但没有成功
Widget _cardProduct(Product product){
return GestureDetector(
onTap: ()async{
await _con.openBotomSheet(product);
setState((){});
},
child: Container( 'Content Here' )
感谢任何帮助:)
最佳答案
您必须从此更改您的功能:
void openBotomSheet(Product product){
showMaterialModalBottomSheet(
context: context,
builder: (context) => ClientProductsDetailPage(product: product),
);
至
Future openBotomSheet(Product product) async {
return await showModalBottomSheet(
context: context,
builder: (context) => ClientProductsDetailPage(product: product),
);
你的 GestureDetector 对此:
Widget _cardProduct(Product product){
return GestureDetector(
onTap: ()async{
_con.openBotomSheet(product).then((value){
// Do refresh function here
// Also take setState inside, to rebuild the widget
setState((){});
});;
},
child: Container( 'Content Here' )
更新:
我认为没有像 showMaterialModalBottomSheet
这样的东西,因此我使用了最接近的类似小部件,即 showModalBottomSheet
。
关于flutter - 如何在 ModalBottomSheet Flutter 中完成操作时刷新父页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72586771/