在构建中获取context.read()功能

时间:2020-08-03 13:26:15

标签: flutter dart state provider state-management

在内部调用context.read()是不安全的。因此,它会引发一个错误,但是允许Provider.of(context,listen = false)进行向后兼容,但仍然不安全。如何获得内部版本的context.read()功能。

我找到了一个解决方案:

在模型中添加两​​个值,一个会更改,另一个不会:

ax1.plot_surface(xx.T, yy.T, 0.0001+test8x8, alpha=0.5, rstride=1, cstride=1, \
                   linewidth=0.5, antialiased=True, zorder = 10)

在窗口小部件调用class MyModel extends ChangeNotifier { double value = 45; double thisValueWillNeverChange = 45; } 中,该值需要更改并且应导致窗口小部件重新生成,但是在您只想读取初始值而又不想更新窗口小部件的地方使用value

您可以使用context.select()或context.watch()访问这两个值。

我要在其中实现此功能的应用种类enter image description here

如您所见,appBar中的标题将带有thisValueWillNeverChange,因此它保持静态,但是文本和滑块将改变并且将使用thisValueWillNeverChange

在开始时,应用程序将以初始值为45.0的所有内容开始

0 个答案:

没有答案