需要类型为“RootProvider<Object, dynamic>”的值,但得到了类型为“bool”

时间:2021-01-31 21:03:27

标签: flutter

使用 hooks_riverpod 面临错误。代码如下

class LabelModel extends HookWidget {
  @override
  Widget build(BuildContext context) {
    final popupBackButton = 
               useProvider(popupBackButtonEnabled.state);
    return ......(
       Row(children:[
          popupBackButton ?
              ? IconButton(
                   icon: Icon(Icons.arrow_back),
                        onPressed: () {               
                         context.read(popupBackButton)
                                .backEnabled(false);
                   })
              : Container(),

         ......
         .......
         ........
         ..........


         FlatButton(
              onPressed: () {
                  context.read(popupBackButton)
                         .backEnabled(true);
               },
               child: Text("Add"),
         )
        ],
     )
    );

那些被全局声明的地方是

class banana extends StateNotifier {
  banana() : super(false);

  void backEnabled(entry) => state = entry;
}

final popupBackButtonEnabled = StateNotifierProvider<banana>(
                               (_) => banana());

它给了我以下错误:

======== 手势捕获异常 ========

<块引用>

处理手势时抛出以下 TypeErrorImpl: 期望类型为“RootProvider”的值,但得到类型为“bool”的值 处理程序:“onTap”

<块引用>

识别器:TapGestureRecognizer#27dcd debugOwner:GestureDetector

<块引用>

状态:可能 赢得了竞技场 finalPosition: 偏移量(644.8, 858.0) finalLocalPosition: 偏移量(19.2, 23.0) 按钮:1 发送点击

我做错了什么?

0 个答案:

没有答案