flutter - 如何在 ModalBottomSheet Flutter 中完成操作时刷新父页面

标签 flutter dart flutter-showmodalbottomsheet

我正在尝试使用 Flutter 制作一个电子商务应用程序。当我单击产品时,它将显示包含产品详细信息的底页。这个想法是,一旦我将产品添加到购物车,购物车图标顶部就会出现一个数字,详细说明您在购物车中保存的产品数量。

Shopping cart

一旦我点击“保存到购物车底部”,底部表单将关闭,但是父页面不会刷新,并且仍然显示之前保存的金额

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/

相关文章:

flutter - Flutter:如何禁用向下拖动以关闭showModalBottomSheet

android - 如何在 showModalBottomSheet 中创建内部导航?

Flutter 主题未被覆盖

firebase - Flutter:Firebase Realtime 从对象列表中删除对象

datetime - Dart 排序/比较可为空的日期时间

tabs - 如何在 Flutter 中使用函数创建动态 TabBarView/渲染新选项卡?

Flutter 覆盖其他应用程序

android - 将 flutter android 项目导入 iOS

firebase - 为什么文档不存在。但始终 !snapshot.hasData 都是 false

gradle - 当我尝试运行我的Flutter应用程序时,遇到了运行Gradle的错误