提供者
final userP =
StateProvider<UserModel>((ref) => UserModel( null));
@JsonSerializable()类用户模型{字符串?介绍;
用户模型(本介绍);
工厂用户模型.fromJson(Map〈字符串,动态〉json)=〉$用户模型FromJson(json);
Map〈字符串,动态〉到Json()=〉$用户模型到Json(this);}
小部件
final user = ref.watch(userP);
Text(user.intro ?? 'innntro null?!'),
ElevatedButton(
onPressed: () {
ref.read(userP.notifier).state.intro = 'change!';
},
child: Text('change intro'))
)
我有这个riverpod提供程序,当我用ElevatedButton
更新值时,我看到它已经用print()
值更新了。但是,它没有更新小部件。当我用pressing r on termianl
刷新应用程序时,它会更新小部件。
有什么原因吗?我做错了什么?
1条答案
按热度按时间w8ntj3qf1#
我尝试了您的示例,当我像这样更改onPressed()时,它成功地更新了