привет, я управляю состоянием с провайдером, но у меня какая-то проблема
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, и я 'пытаюсь управлять кнопкой «Мне нравится» с помощью провайдера.
Но в отличие от того, что я думал, функция «Вкл. и выкл.» работает нормально, но все каналы имеют одного и того же провайдера.
Например, если вынажмите Как на одном канале, канал, который вы не нажимали, включен, даже если вы перешли на другой канал.
Код поставщика:
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(),
),
);
}
}
Как мы можем управлять отдельнымПодача