为什么我不能使用 Provider ( context.select,context.read和context.listen) 的任何扩展方法?
我收到这样的静态错误。
没有为“BuildContext”类型定义方法“select”。尝试将名称更正为现有方法的名称,或定义名为“select”的方法。
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
// Following line causes the problem
var isFavorite = context.select<FavModel, bool>(
(fav) => fav.items.contains(item),
);
return OtherWidget(...);
}
}
Run Code Online (Sandbox Code Playgroud)
eas*_*ccy 27
context.select,context.read并context.listen有扩展方法从商。要使用它们,您应该导入 Provider。
在您的文件顶部添加以下内容:
import 'package:provider/provider.dart';
Run Code Online (Sandbox Code Playgroud)
默认情况下它应该是自动导入的。这是一个已知问题。
我在 VS Code 中使用 Bloc,在调用 context.read 时出现此错误。这个错误是因为我没有导入bloc库。这就是我收到此类错误的原因。确保您已导入相关库。以我为例
import 'package:flutter_bloc/flutter_bloc.dart';
Run Code Online (Sandbox Code Playgroud)
contect.read
您好,如果使用 Riverpod 并在添加此行时出现错误
import 'package:flutter_riverpod/flutter_riverpod.dart';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5529 次 |
| 最近记录: |