【问题标题】: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。耶!

    【讨论】:

      猜你喜欢
      • 2021-06-24
      • 2018-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      • 2022-08-19
      • 2016-06-14
      • 1970-01-01
      相关资源
      最近更新 更多