在 Widget 中初始化 StateProvider
Initialize StateProvider in Widget
我只想使用小部件参数初始化提供程序一次。出于某种原因,我无法使用 .family。我不确定这是否是正确的方法。你能检查一下吗?谢谢。
StateProvider<String> valueStateProvider;
class Widget extends HookWidget {
final String value;
Widget({@required this.value}) {
valueStateProvider = StateProvider<String>((ref) => this.value);
}
}
终于找到了正确的方法。这种情况有特殊的提供者类型。 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。耶!
我只想使用小部件参数初始化提供程序一次。出于某种原因,我无法使用 .family。我不确定这是否是正确的方法。你能检查一下吗?谢谢。
StateProvider<String> valueStateProvider;
class Widget extends HookWidget {
final String value;
Widget({@required this.value}) {
valueStateProvider = StateProvider<String>((ref) => this.value);
}
}
终于找到了正确的方法。这种情况有特殊的提供者类型。 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。耶!