【问题标题】:refresh the state when popping弹出时刷新状态
【发布时间】:2020-06-29 08:26:52
【问题描述】:

我正在使用 Future builder 为我的用户设置个人资料,他们可以在第二页中编辑信息。但是当他们提交时 Navigator.pop(context) 被调用,但第一个屏幕上没有任何变化。如果我离开页面并返回它,它只会刷新状态!有没有办法强制刷新屏幕?

 User user = User(
    id: widget.user.id,
    name: _name,
    profileImageUrl: _profileImageUrl,
    bio: _bio,
    email: _email,
    webAddress: _webAddress,
    tel: _tel,
    location: _location,

  );
  DatabaseService.updateUser(user);


  Navigator.pop(context);
}

这就是我的提交按钮的作用

【问题讨论】:

标签: flutter navigation page-refresh


【解决方案1】:

正如@pskink 在 cmets 中指出的那样,Navigator.pop() 将返回一个 Future。你可以听它完成,然后调用setState 来重建你的小部件

Navigator.push().then((value)=> setState((){});

现在,这仅适用于您在查看和编辑页面上的数据来自同一来源的情况。如果您只是传递原始值来编辑页面并在那里进行更改,那么无论您以前的页面是什么都可能不会更新。在这种情况下,您可以从编辑页面返回更新后的数据,或者使用状态管理的方式来监听变化

【讨论】:

  • push 返回 Future,而不是 pop
猜你喜欢
  • 2020-08-14
  • 1970-01-01
  • 2020-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-21
  • 1970-01-01
相关资源
最近更新 更多