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(),
),
有了这一点,你可以使用消费者内部