You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HookConsumerWidget是否仍是hooks_riverpod.dart中的有效组件?

hooks_riverpod HookConsumerWidget 报错解决方案

HookConsumerWidget 已在 hooks_riverpod 2.0 及以上版本中正式移除,不属于当前版本的合法组件类,你遇到的报错是版本迭代导致的API变更问题。

解决方案

推荐迁移方案(适配2.0+版本)

2.0版本后hooks_riverpod对组件做了能力合并,默认的ConsumerWidget已经整合了Hook支持,只要项目同时引入了flutter_hooks依赖,直接替换继承的父类即可,原有业务逻辑无需调整。
示例代码如下:

import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';

// 旧写法:class DemoPage extends HookConsumerWidget
// 新写法直接替换为ConsumerWidget
class DemoPage extends ConsumerWidget {
  const DemoPage({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    // 可正常使用所有Hook方法,比如useState、useEffect等
    final tapCount = useState(0);
    // 也可正常使用ref读取、监听Provider
    final appConfig = ref.watch(appConfigProvider);

    return Scaffold(
      body: Center(
        child: Text('点击次数:${tapCount.value},配置值:$appConfig'),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () => tapCount.value++,
        child: const Icon(Icons.add),
      ),
    );
  }
}

final appConfigProvider = StateProvider<String>((ref) => '默认配置');

临时兼容方案

如果暂时不打算迁移代码,可以在pubspec.yaml中将hooks_riverpod版本锁定在1.x稳定版:

dependencies:
  hooks_riverpod: ^1.0.4

注意该版本分支已停止维护,不建议长期使用。

内容的提问来源于stack exchange,提问作者msmartin43

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 18:33:00