Flutter 如何在颤振提供程序包中正确使用消费者
这是错误消息Flutter 如何在颤振提供程序包中正确使用消费者,flutter,provider,consumer,changenotifier,Flutter,Provider,Consumer,Changenotifier,这是错误消息 : The following NoSuchMethodError was thrown building Consumer<PageOffsetNotifier>(dirty, : dependencies: [_InheritedProviderScope<PageOffsetNotifier>]): : The method 'unary-' was called on null. : Receiver: null : Tried calling: u
: The following NoSuchMethodError was thrown building Consumer<PageOffsetNotifier>(dirty,
: dependencies: [_InheritedProviderScope<PageOffsetNotifier>]):
: The method 'unary-' was called on null.
: Receiver: null
: Tried calling: unary-()
:以下NoSuchMethodError在构建使用者时抛出(脏,
:依赖项:[[u InheritedProviderScope]):
:对null调用了方法“一元-”。
:接收器:空
:尝试呼叫:一元-()
这是一个有消费者的课程
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'),
);
}
}
类LeopardImage扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
退货消费者(
生成器:(上下文、通知程序、子项)=>已定位(
宽度:300,左:-,
孩子:孩子,
),
子级: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(),
),
changeNotifierProvider(
oncreate:(context)=>ClassName(),
),
有了这一点,你可以使用消费者内部