弹出时刷新状态

refresh the state when popping

我正在使用 Future 构建器为我的用户设置配置文件,他们可以在第二页中编辑信息。但是当他们提交时 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);
}

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

正如@pskink 在评论中指出的那样,Navigator.pop() 将 return 成为未来。您可以监听它完成,然后调用 setState 重建您的小部件

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

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