未为 BuildContext 定义 context.select

Ria*_*nou 14 dart flutter

为什么我不能使用 Provider ( context.select,context.readcontext.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.selectcontext.readcontext.listen扩展方法从商。要使用它们,您应该导入 Provider。

在您的文件顶部添加以下内容:

import 'package:provider/provider.dart';
Run Code Online (Sandbox Code Playgroud)

默认情况下它应该是自动导入的。这是一个已知问题

  • 就我而言,应该是 import 'package:flutter_bloc/flutter_bloc.dart'; 谢谢你的提示! (6认同)

Sha*_*put 7

我在 VS Code 中使用 Bloc,在调用 context.read 时出现此错误。这个错误是因为我没有导入bloc库。这就是我收到此类错误的原因。确保您已导入相关库。以我为例

import 'package:flutter_bloc/flutter_bloc.dart';
Run Code Online (Sandbox Code Playgroud)


Erf*_*tfi 5

contect.read 您好,如果使用 Riverpod 并在添加此行时出现错误

 import 'package:flutter_riverpod/flutter_riverpod.dart';
Run Code Online (Sandbox Code Playgroud)

  • 您好,contect.read 在最新版本的 Riverpod 中已弃用,请遵循文档。 (2认同)