Flutter使用Consumer报错:参数类型Type无法赋值给Widget Function类型参数
错误原因
该报错为provider依赖包版本迭代导致的API不兼容问题:新版Consumer组件要求传入的builder函数签名为Widget Function(BuildContext, MenuInfo, Widget?),你当前代码的参数顺序完全颠倒,同时存在函数结构缺失的语法问题。
修复方案
- 调整
builder的参数顺序,严格遵循(BuildContext context, 泛型值, Widget? child)的顺序 - 补全
builder的函数实现结构,添加大括号与返回的Widget逻辑
修正后代码参考
Consumer<MenuInfo> buildMenuMethod(MenuInfo currentMenuInfo) { return Consumer<MenuInfo>( // 修正参数顺序+补全函数结构 builder: (BuildContext context, MenuInfo value, Widget? child) { return Padding( padding: const EdgeInsets.symmetric(vertical: 16.0), child: TextButton( style: TextButton.styleFrom( backgroundColor: currentMenuInfo.title == ' Clock ' ? Colors.grey.shade900 : Colors.transparent, ), // 此处补全你原有TextButton的onPressed、child等剩余逻辑即可 ), ); }, ); }
内容的提问来源于stack exchange,提问作者Lakshya Saxena
相关产品推荐
相关产品推荐

