我对如何将 stateNotifier 与 Riverpod 一起使用感到困惑。那里的大多数教程都使用了反例,这很好,但对我来说仍然不是很清楚。我正在尝试实现具有 2 个状态的 stateNotifier: isDrawerOpen 和 isDrawerColor 返回布尔结果。一些函数会触发这些状态的变化。以下是我已经实施的并且可以真正使用一些澄清。
import 'package:flutter_riverpod/all.dart';
class DrawerNotifier extends StateNotifier{
DrawerNotifier() : super(false);
bool isDrawerOpen = false;
bool isDrawerColor = false;
void toggleDrawer() {
isDrawerOpen = !isDrawerOpen;
}
void toggleColor() {
isDrawerColor = !isDrawerColor;
}
}
final drawerProvider = StateNotifierProvider((_) => DrawerNotifier());
final isDrawerOpen = StateNotifierProvider((ref){
final state = ref.watch(drawerProvider);
return state.isDrawerOpen;
});
final isDrawerColor = StateNotifierProvider((ref){
final state = ref.watch(drawerProvider);
return state.isDrawerColor;
});