// 创建provider
final tProvider = StateProvider<int>((ref) {
return 0;
});
Widget build(BuildContext context, WidgetRef ref) {
final num = ref.watch(tProvider);//watch获取值
return TextButton(
onPressed: () {
ref.read(tProvider.notifier).state++;//read修改值
ref.listen<int>(tProvider, (previous, next) {
//tProvider要监听的provider
//previous旧值,状态变化前,第一次监听时为null
//next新值,状态变化后(当前的值)
//listen一般在build方法里调用,确保在widget初始化时就会开始监听
//...要做的操作,如显示弹框、toast等
});
},
child: Text('num:$num'),
);
}












网友评论