为什么我不能使用 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) 我有一个ListView.builder 带有物品的物品,我们可以单击一颗心来添加到收藏夹。我想将添加到收藏夹的所有项目放在另一个 ListView.builder屏幕的另一个项目中。我也希望通过单击心形可以抑制收藏夹列表视图的收藏夹项目。我怎样才能做到这一点?这是我的代码:
Home_screen.dart
\nimport 'package:flutter/material.dart';\nimport 'package:cached_network_image/cached_network_image.dart';\nimport '../recyclerview/data.dart';\nimport 'package:chrolix/constants.dart';\nimport 'package:flutter_countdown_timer/flutter_countdown_timer.dart';\n\nint itemCount = item.length;\nList<bool> selected = new List<bool>();\n\nclass MyHomePage extends StatefulWidget {\n MyHomePage({Key key, this.title}) : super(key: key);\n final String title;\n\n @override\n _MyHomePageState createState() => _MyHomePageState();\n}\n\nclass _MyHomePageState extends State<MyHomePage> {\n @override\n initState() {\n for (var i = 0; i < itemCount; i++) {\n selected.add(false);\n }\n super.initState();\n }\n \n Icon notFavorite = Icon(Icons.favorite_border, size: 32,);\n Icon inFavorite = Icon(Icons.favorite, size: 32,);\n\n @override\n Widget build(BuildContext context) {\n return new …Run Code Online (Sandbox Code Playgroud) 我想知道如何在按下 IconButton 时更改其图标。(Favorite_border 到收藏夹)。我尝试了一些东西,但它不起作用。也许这很容易,但我是初学者,我不太了解它是如何工作的。
更新
import 'package:flutter/material.dart';
import 'package:cached_network_image/cached_network_image.dart';
import '../recyclerview/data.dart';
import 'package:watch/constants.dart';
int itemCount = item.length;
List<bool> selected = new List<bool>();
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
initState() {
for (var i = 0; i < itemCount; i++) {
selected.add(false);
}
super.initState();
}
Icon notFavorite = Icon(Icons.favorite_border, size: 25,);
Icon inFavorite = Icon(Icons.favorite, size: 25,);
@override
Widget build(BuildContext context) …Run Code Online (Sandbox Code Playgroud)