如何解决如何在Flutter提供程序包中正确使用使用者
这是错误消息
: The following NoSuchMethodError was thrown building Consumer<PageOffsetNotifier>(dirty,: dependencies: [_InheritedProviderScope<PageOffsetNotifier>]):
: The method 'unary-' was called on null.
: Receiver: null
: Tried calling: unary-()
这是消费者类
class LeopardImage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Consumer<PageOffsetNotifier>(
builder: (context,notifier,child) => Positioned(
width:300,left: -notifier.offset,child: child,),child: Image.asset('assets/leopard.png'),);
}
}
此处 PageOffsetNotifier 是扩展了 ChangeNotifier 并传递给 ChangeNotifierProvider
的类通知程序会在将一页滑到另一页并执行所需功能时检测到偏移值的变化....
请告诉我消费者中我缺少什么或做错了什么,结果是我收到了此错误
解决方法
使用提供程序将上下文从页面传递到另一个页面。那么使用它的对象总是明智的选择
ChangeNotifierProvider.value(
value: object from Provider,child: the page you want to move
)
,
其父窗口小部件将是:
ChangeNotiferProvider<ClassName>(
oncreate: (context)=>ClassName(),),
您可以在其中使用消费者。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。