【发布时间】:2021-05-16 23:57:03
【问题描述】:
我对 InheritedWidget 的了解?
InheritedWidgets 不是重建的,而是我们必须创建一个具有新值的新 InheritedWidget。 然后在 updateShouldNotify() 方法内部会比较它的旧对象和当前对象并返回 true 或 false。
如果 updateShouldNotify() 返回 true -> 依赖的上下文将被重建。
如果 updateShouldNotify() 返回 false -> 则依赖上下文不会重建。
@override
bool updateShouldNotify(_InheritedCount old) {
return old.state != state;
}
所以每次我们创建前一个 InheritedWidget 的新实例时,都会调用 updateShouldNotify() 方法并决定是否重建其依赖项。
关于 InheritedWidget 我想知道什么?(我感到困惑的事情)
- 是否每个 InheritedWidget 都需要使用 StatefulWidget 进行包装才能创建该 InheritedWidget 的新实例?
- 当 ChangeNotifier 对象向其 ChangeNotifierProvider() 发送更改通知时,ChangeNotifierProvider 是否将其 InheritedWidget(或 InheritedProvider)包装在 StatefulWidget 中以重新创建新的 InheritedWidget?
(请善待我如何处理英语)
【问题讨论】:
标签: flutter provider inherited-widget