flutter ref.watch 不处理json_annotated StateProvider的值更改

mnemlml8  于 2023-02-16  发布在  Flutter
关注(0)|答案(1)|浏览(126)

提供者

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刷新应用程序时,它会更新小部件。
有什么原因吗?我做错了什么?

w8ntj3qf

w8ntj3qf1#

我尝试了您的示例,当我像这样更改onPressed()时,它成功地更新了

ref.read(userP.notifier).update((state) => UserModel('change'));

相关问题