无法使用 Riverpod 观看对象实例

Can't watch object instance with Riverpod

在 Flutter 网络项目中,我遇到了 Riverpod 的问题:

Consumer(
  builder: (context, watch, child) {
    final om=watch(human);  
    return Text(om.name); }

'watch' 有下划线,编译器说:The expression doesn't evaluate to a function, so it can't be invoked. 快速修复建议是从括号中删除 human。当然,当我还有一些战斗力时,这不会发生。这是人类的定义:

final human=ChangeNotifierProvider((ref)=>Human()); 

class Human with ChangeNotifier{String name="tananana";}

我无法告诉您我正在导入哪个版本的 Riverpod,因为我不得不在 pubspec.yaml 中未指定它,这样它可能会解决与其他导入的冲突,但我我在主频道 运行 版本 2.9.0-1.0.pre.294

我们将重视任何建议。

您最有可能使用的是 Riverpod 的版本 1.0.x,它更改了侦听提供程序的语法。

TL;DR,Consumer 没有收到“watch”作为参数,而是收到“ref”。因此,要观看提供商,您需要执行以下操作:

Consumer(
  builder: (context, ref, child) {
    final om = ref.watch(human);

有关详细信息,请参阅 the migration guide