final itemCountProvider = StateProvider<int>((ref) {
return 0;
});
我需要跟踪项目中选择的项目数量,最初项目计数将为零,但后来我需要给它计算值如何更新itemCountProvider中的值,因为它已经声明为最终
您可以使用read
更新状态
- 如果你想每次更新一个新值
ref.read(itemCountProvider.state).state = newValue;
- 如果你想根据之前的状态值更新
ref.read(itemCountProvider.state).state = ref.read(itemCountProvider.state).state + newValue;
或
ref.read(itemCountProvider.state).state += newValue;
或
ref.read(counterProvider.notifier).update((state) => state + newValue);
你可以这样更新状态提供者的值:
ref.read(itemCountProvider.state).state = 10;
下面是一个示例计数器应用程序:
final itemCountProvider = StateProvider((ref) => 0);
class HomePage extends ConsumerWidget {
const HomePage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context, WidgetRef ref) {
final counter = ref.watch(itemCountProvider);
return Scaffold(
body: Center(
child: Text(
counter.toString(),
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
ref.read(counterProvider.state).state += 1;
},
),
);
}
}