flutter 如何在页面出现抖动时强制构建

vqlkdk9b  于 2023-01-18  发布在  Flutter
关注(0)|答案(2)|浏览(99)

你好,希望你们没事。我面临的问题是,我们有一个main_page,它会导致一个页面对显示在主页上的数据进行一些更改。经过一些过程后,如果用户触摸后退按钮并转到main_page,应用程序会从堆栈加载它,数据不会显示,因为它不会得到重建。我不我不想控制后退按钮,因为有其他页面导致数据更改页面,我也尝试使用valuelistenablebuilder,但我不'I don“我不知道为什么它会失控,甚至在不更改valueListable的情况下进入屏幕刷新循环。我使用redux来管理值。我希望主页重建的实际原因是调用一个方法。为什么我不在第二页调用那个方法呢?这很复杂,因为我不想调用。
总之,我希望主页在显示时重新构建,甚至在从堆栈读取时,或者甚至有一种方法可以篡改页面堆栈,而不会对用户进行视觉更改。

osh3o9ms

osh3o9ms2#

如果我没理解错的话
流量应为:
屏幕A

@override
void initState() {
 loadSomeDataFromDB();
 super.initState();
}

筛选B

@override
void initState() { *//INIT AS EXAMPLE*
 changeSomeDataFromDB();
 super.initState();
}

您可以在屏幕A中尝试此操作

onPressed: () async {
            bool? shouldLoadDataAgain = await 
            Navigator.of(context).push(PageRouteBuilder(
              pageBuilder: (context, animation, secondaryAnimation) =>
                  const ScreenB(),
            ));
            if(shouldLoadDataAgain!=null&&shouldLoadDataAgain ==true){
             loadSomeDataFromDB();
            }
          },

当用户按下返回按钮时,屏幕B中显示此信息

onPressed: () async {
            Navigator.of(context).pop(true)
          },

相关问题