我正在学习Flutter的状态管理提供程序。我不明白为什么要为StreamProvier设置“ _”构造函数。是否可以在没有构造函数“ _”的情况下实现StreamProvider.value? 谢谢! 这是代码段和the file link
/// Listens to [value] and expose it to all of [StreamProvider] descendants.
StreamProvider.value({
Key key,
@required Stream<T> value,
T initialData,
ErrorBuilder<T> catchError,
UpdateShouldNotify<T> updateShouldNotify,
Widget child,
}) : this._(
key: key,
delegate: SingleValueDelegate(value),
initialData: initialData,
catchError: catchError,
updateShouldNotify: updateShouldNotify,
child: child,
);
StreamProvider._({
Key key,
@required ValueStateDelegate<Stream<T>> delegate,
this.initialData,
this.catchError,
this.updateShouldNotify,
this.child,
}) : super(key: key, delegate: delegate);
答案 0 :(得分:1)
之所以使用此构造函数,主要是因为MultiProvider当前如何工作: MultiProvider依赖于克隆小部件。
问题是,提供程序(包括StreamProvider)倾向于具有两个具有不同参数的公共构造函数。
因此,该私有构造函数用作使用MultiProvider的“克隆”方法的实现细节。