【问题标题】:How should I access a Riverpod provider from a different file?我应该如何从不同的文件访问 Riverpod 提供程序?
【发布时间】:2021-08-12 08:15:37
【问题描述】:

我习惯于提供者的Provider.of() 调用以从小部件树中的其他位置获取提供者,但我发现的每个 Riverpod 资源都依赖于已经可以访问提供者变量(通过将两个小部件放在同一个文件中)。对于仅通过两个小部件访问的提供程序,传递此变量非常简单,但我认为这对于访问在小部件树中创建的提供程序不可行。有没有合适的方法来获取提供者?

【问题讨论】:

    标签: flutter riverpod


    【解决方案1】:

    您可以简单地导入定义提供程序的文件。Riverpod 提供程序是在全局范围内创建的,因此可以在任何地方访问。

    例如:

    // hello_provider.dart
    import 'package:flutter_riverpod/flutter_riverpod.dart';
    
    final helloWorld = Provider<String>((_) => 'Hello World');
    
    // widget.dart
    import 'package:flutter_riverpod/flutter_riverpod.dart';
    import 'package:my_app/hello_provider.dart'
    
    class MyWidget extends ConsumerWidget {
      @override
      Widget build(BuildContext context, ScopedReader watch) {
        return Text(watch(helloWorld));
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-01-19
      • 2021-05-30
      • 1970-01-01
      • 2019-03-15
      • 2021-02-25
      • 2015-09-29
      • 1970-01-01
      • 2016-02-26
      • 1970-01-01
      相关资源
      最近更新 更多