0

我已经在 Flutter 中开发了几个月,但我还不是很有经验。这些天我正在开发一个我从一开始就没有创建的应用程序,我遇到了一个奇怪的问题,不幸的是我不能粘贴太多的代码,但我试图解释错误的行为。应用程序的状态包含在一个 InheritedWidget 中,该控件在所有其他控件之前被调用。例如,在这个 InheritedWidget 中有一个值必须始终在应用程序顶部(在 AppBar 中)可见。问题是,如果在运行时在 InheritedWidget 中更改了此值,则视图会显示以前的值(就好像它没有更新一样),但是如果我将 Navigator.push() 转到新页面,则 AppBar 会显示正确的值(即更新的值)。如果我跳到上一页,旧值会重新出现在 AppBar 中。

即使 InheritedWidget 中的值发生更改,视图似乎也不会更新。我指定在显示之前,这个值是直接从 InheritedWidget 中提取的,使用context.dependOnInheritedWidgetOfExactType<InheritedWidgetName>(). 我还指定以这种方式设置“updateShouldNotify”: @override bool updateShouldNotify(Session oldWidget) { return true; }

我想问是否有人知道可能导致此问题的原因。

提前致谢。

4

0 回答 0