弹出时刷新状态
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 从编辑页面更新数据或使用状态管理方法来监听变化
我正在使用 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 从编辑页面更新数据或使用状态管理方法来监听变化