我有一个屏幕,可以像这样将数据传递回去:
final myUpdatedObject = await Navigator.of(context).push(...);
setState({
object = myUpdatedObject;
});
在小部件主体的所有位置都用简单的print
检查了使用我的对象的情况,新数据在经过Navigator
传回并且setState
叫。
但是,当重新构建窗口小部件时,即使显然有新数据,它也不会反映在UI更改中,而是显示旧数据。
这是调试模式下的某种缓存吗?是什么导致此问题?
答案 0 :(得分:0)
下面的示例以一个名为Map
的{{1}}开始,并带有一个textMessageMap
键,该键为message
小部件填充了“主页”。点按Text
,然后将导航至FloatingActionButton
。如果您点击“返回!” SecondScreen
中的[{1}]按钮,SecondScreen
中的message
键将更新为“第二屏幕”。如果您在textMessageMap
的{{1}}上点击后退按钮,则Scaffold
将被清空。调用SecondScreen
会相应地更新UI。查看您的实现是否不同。
textMessageMap