Flutter:当用户从任何其他屏幕返回屏幕时如何刷新屏幕

时间:2020-03-25 18:17:09

标签: flutter dart

例如。

我在屏幕1上,按下屏幕上,然后转到屏幕2。
然后我用屏幕3 替换屏幕2
现在我弹出带有传递一些数据
的Screen-3 然后返回到Screen-1 而且我想在Screen-1中刷新数据

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用类似的方法(但是必须从3变到2,最后是1)以获得一些值,然后刷新它:

var result = await Navigator.of(context).push(
            MaterialPageRoute(builder: (context) => Screen2()));
        if (result != null) {
          setState(() {
            valueYouChangeIt = result;
          });
        }

然后使用以下方法从Screen2发送回该值:

_sendDataBack(BuildContext context) {
    Navigator.pop(context, valueToSendBack);
  }

或者,如果您想刷新所有内容,可以编写_initState函数,以在其中初始化数据,然后在结果上调用_initState。

说,所有这一切都可能是非常繁琐的过程,因此,如果它是一个具有2到5个屏幕的小型应用程序,则可以,但是像其他人评论的那样,具有更多屏幕,我宁愿使用Provider。