【问题标题】:Initialize StateProvider in Widget在 Widget 中初始化 StateProvider
【发布时间】:2020-09-01 13:43:40
【问题描述】:
我只想使用小部件参数初始化提供程序一次。出于某种原因,我不能使用 .family。我不确定这是否是正确的方法。你能检查一下吗?谢谢。
StateProvider<String> valueStateProvider;
class Widget extends HookWidget {
final String value;
Widget({@required this.value}) {
valueStateProvider = StateProvider<String>((ref) => this.value);
}
}
【问题讨论】:
标签:
flutter
dart
flutter-provider
【解决方案1】:
我终于找到了正确的方法。这种情况有特殊的提供程序类型。 ScopedProvider.
final scopedProvider = ScopedProvider<String>((_) => throw UnimplementedError());
class Widget extends HookWidget {
Widget({@required this.value});
final String value;
@override
Widget build(BuildContext context) {
return ProviderScope(
overrides: [scopedProvider.overrideWithValue(this.value)],
child: AnotherWidget()
);
}
}
所以你可以在 AnotherWidget 中使用 scopedProvider。耶!