您与提供商之间的管理状态, 但是我有问题
InkWell(
onTap: () {
if (contextLikeState.LikeState2 == false) {
LikeControll(contextLikeState.LikeState2);
contextLikeState.on2();
} else {
LikeControll(contextLikeState.LikeState2);
contextLikeState.off2();
}
},
child: (contextLikeState.LikeState2 == false)
? Icon(
Icons.favorite_border,
color: Colors.black54,
size: 20,
)
: Icon(
Icons.favorite,
color: Colors.red,
size: 20,
),
),
上面的代码,就像打开和关闭按钮一样
我正在使用ListView创建Feed,并且尝试使用提供程序来管理“赞”按钮。
但是与我所想的不同,Like On和Off的功能正常工作,但是所有提要都具有相同的提供程序。
例如,如果您在一个供稿上按“赞”,则即使您移至另一个供稿,也未按该供稿。
提供者代码:
class ContextLikeState extends ChangeNotifier{
bool _LikeState = false;
bool get LikeState2 => _LikeState;
set LikeState2(bool val){
_LikeState = val;
notifyListeners();
}
on2(){
_LikeState = true;
notifyListeners();
}
off2(){
_LikeState = false;
notifyListeners();
}
}
class MyApp extends StatelessWidget{
static const String _title = 'flutter code';
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
ChangeNotifierProvider<BlocProvider>.value(value: BlocProvider()),
ChangeNotifierProvider<ProfileLikeState>.value(value: ProfileLikeState()),
ChangeNotifierProvider<ContextLikeState>.value(value:ContextLikeState()),
],
child: MaterialApp(
debugShowCheckedModeBanner: false,
title: _title,
home: LoginScreen(),
),
);
}
}
我们如何管理单个Feed?