例如,要访问增量和减量方法,我们可以编写如下代码:

onPressed: () {
    ref.read(countProvider.notifier).increment;
},

onPressed: () {
    ref.read(countProvider.notifier).decrement;
},   

Can we reduce it if we write in the build method like this:

  Widget build(BuildContext context, WidgetRef ref) {
    final countProvider = ref.watch(countProvider)
    final countNotifier = ref.read(countProvider.notifier)

onPressed: () {
    countNotifier.increment;
},

onPressed: () {
    countNotifier.decrement;
},

as if to put the reference to the notifier in the build method

一切都使用这种方法,但是如果Remi不建议将ref.read放入构建方法,这是正确的解决方案吗

推荐答案

一切都会很好的,完全按照这个顺序.你在观察情况,然后阅读它.因此,countNotifier将始终保持当前值.

然而,更好的做法是利用它:

Widget build(BuildContext context, WidgetRef ref) {
    final countProvider = ref.watch(countProvider);
    final countNotifier = ref.watch(countProvider.notifier); // changed to watch

    onPressed: () {
        countNotifier.increment;
    },

    onPressed: () {
        countNotifier.decrement;
    },
}

Flutter相关问答推荐

在Flutter 中将参数从一个类传递到另一个类

Android Studio将不会构建iOS模拟器应用程序,因为plist.info有问题

Flutter /dart 列表.第一个子类列表中的Where()错误

Flutter飞溅屏幕即使在修改后仍显示默认徽标和背景色

打开键盘时屏幕组件会被压扁

如何在Flutter 中使用选定的键和值从 map 列表创建 map

了解多Provider 和流

使用 Flutter 和 Dio 将图像上传到 API

即使小部件比Flutter 中的屏幕更宽,也始终显示滚动条

获取通过列表呈现的相同 TextEditingController 的值

Flutter 3.10 - 'window' 已弃用,不应使用

如何停止折线图的抖动

当我将主题更改为深色然后返回浅色模式时,Getx 会Flutter 更改主题,它不会加载我的自定义主题

具有 BLOC 和存储库模式的 Flutter Workmanager

如何在 flutter 中使用 tabbar 作为底部导航栏?

我可以定义一次 sharedPreferences 并在需要数据显示到 flutter 应用程序时调用它吗?

如何修复int类型不是String类型的子类型

我想在数组中添加项目

带图像封面的 ElevatedButton

如何在 IntroductionScreen 小部件 Flutter 中制作全屏渐变色