Flutter 弹框数据更新

一、提出的问题

我封装一个弹框组件之后发现修改了数据,但是页面并没有重新渲染。

二、问题的原因

在flutter中弹框其实是一个新的页面,所以调用setState时,其实重新渲染的是弹框前的页面,弹框本身的页面并不会进行重新渲染,需要调用弹框中的setState才行。

三、解决问题

使用StatefulBuilder包裹要展示的内容,代码如下:

  Future<bool?> dialog(BuildContext context, List list) async {
    return showModalBottomSheet<bool>(
      context: context,
      builder: (BuildContext context) => StatefulBuilder(
        builder: (context, setState) => Container(
          child: Flex(
            direction: Axis.vertical,
            children: [
              ......
            ],
          ),
        ),
      ),
    );
  }

猜你喜欢

转载自blog.csdn.net/m0_68349563/article/details/129500075