无法使用 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
在 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