问题标签 [riverpod]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
493 浏览

flutter - 如何使用 Flutter Riverpod 充当 ChangeNotifierProxy Provider?

只是想知道是否有任何方法可以以某种方式使用 Riverpod 包,它就像 ChangeNotifierProxy Provider 一样工作。我制作了这个简单的代码,其中“MyFirstClass”更改其属性时应更新“MySecondClass”。在“MySecondClass”中,是一种在“MyFirstClass”发生更改时使用数据/变量的方法。

到目前为止,当我按下按钮并执行 onPressed 函数时,'MySecondClass' 会更新一次,但即使我再次按下按钮也会保持不变。

这是提供者和类的部分:

如果你想复制这个例子的整个代码,这里是:

0 投票
1 回答
580 浏览

flutter - 如何在riverpod的statenotifier中访问值和函数

我使用 inriverpod 实现了用户身份验证,statenotifier但我不知道它是如何以这种方式工作的。我必须创建两个提供程序,一个StateNotifierProvider用于读取值,另一个Provider用于statenotifier访问statenotifier.

这是我的 statenotifier 类

这就是我访问 statenotifier 的方式

这很好用,但我需要知道这是正确的方法还是我错了。有没有其他方法可以实现我正在做的同样的事情?请给出解决方案。

而且我所做的也是正确的,请告诉我它是如何以这种方式工作的。我需要清楚地了解它是如何工作的。

提前致谢 :)

0 投票
1 回答
185 浏览

flutter - 将 FutureProvider 变成 Provider

FirebaseAuth用于身份验证,并定义了以下提供程序:

数据库依赖于用户,所以我只能在用户登录后创建它。问题是数据库创建是异步的,所以它的提供者必须是 FutureProvider。

这将使整个应用程序的代码更加繁琐。我想让应用程序的代码更databaseFutureProvider简洁。Provider怎么可能做到?

编辑

最好让数据库创建成为身份验证过程的一部分,这样authStateChangesProvider只有在数据库创建后才会触发。类似于以下内容:

这样,只有authStateChangesProvider将成为 FutureProvider。但我对 Riverpod 还很陌生,我不确定是否以及如何在另一个提供程序中创建一个提供程序。

0 投票
1 回答
216 浏览

flutter - 如何正确开始和结束或动画和更改其他类颤动的文本

我正在学习颤动,我想从 AlertDialog 响应(基本上来自其他类)开始动画并设置应用栏标题“同步”,然后在异步操作后结束动画并再次设置标题。

所以目前我正在使用 GlobalKey 和 Riverpod(StateNotifier) 来实现这一点。在我调用异步操作之前创建 MainScreen GlobalKey 并使用其他类中的 GlobalKey

并在异步操作后结束动画:

代码 :

和 MainScreen 的 AppBar 标题属性中的监听变量

我觉得这种做法不对,是吗?

这里有一些额外的片段 syncProgressProiver:

MainScreen AppBar 标题

像这样

在此处输入图像描述

0 投票
1 回答
967 浏览

flutter - 如何使用 shared_preferences 库实现 Flutter Riverpod FutureProvider?

我目前没有 FutureProvider + shared_preferences 的实现:

我想使用shared_preferences包来保持状态,但我不太确定如何将我当前的实现转换FutureProvider为用作获取/设置shared_preferences用途的实现。async/await

我基本上想在应用程序启动时shared_preferences使用它的方法来“加载”来初始化通知程序,然后调用通知程序方法中的方法和.getshared_preferences setloginActionlogoutAction

0 投票
1 回答
296 浏览

flutter - I want to initialize the state. ( RiverPod : StateNotifier )

I want to initialize the state of super.

Error : The operator '<' isn't defined for the type 'Type'.

Provider

StateNotifier

0 投票
1 回答
2129 浏览

flutter - Riverpods with hooks Flutter - 使用 Provider

有人可以举一个最好使用riverpod_hooks在Riverpods中进行额外状态修改的示例 - 我希望能够在不制作额外小部件的情况下使用它,例如:

我在理解 Riverpods 文档中关于在实施后使用提供程序方面有点困难。我了解增量部分 .state++,但我找不到初始化后更改状态值的明确示例。如 x 初始化为零,但您只想将其设为 42 或输入值。

例如,我有一个 Gender {male, female, non-binary} 的枚举,并且我创建了一个 GenderProvider,但我无法找出能够使用按钮在我的应用程序中更改性别的最佳方法。我也不完全确定 Provider 和 RiverPods 有多少相似之处,似乎有很多语义差异?

这就是当前在我的代码中声明提供程序的方式:

在此先感谢,我很感激任何建议。

0 投票
1 回答
965 浏览

flutter - 在 Flutter 之外使用 StreamProvider 的 RiverPod 方式是什么 - 仅限 Dart

第一次使用 RiverPod 和一般的 Provider 概念。

目标:验证登录用户在我的帐户FireStore集合中有一个帐户信息文档

我的代码基于RiverPod站点上引用的Flutter /firebase 启动器架构,作为如何使用 RiverPod 进行状态管理的示例。

我正在使用最新的 flutter_riverpod包。

我的最小化代码:

firestore_database.dart - 实现远离 ui 的模型/服务层。

account_setup_service.dart

这是我坚持的部分。其他一切都检查出来。如何accountStreamProvider在仅 Dart 的上下文中使用 Flutter 的外部?同样,我的目标是简单地评估流是否为空或是否包含文档。

在 RiverPod 文档站点上,我阅读了“仅使用 Dart 读取提供程序之外的提供程序”参考,但是,我不确定在哪里使用它来使用流并评估数据(如果有的话)。

0 投票
1 回答
319 浏览

flutter - StateNotifierProvider 在应用程序重新启动之间不保持状态

使用flutter_riverpod: ^0.12.4并在 android 模拟器以及物理设备上进行测试。

重新启动应用程序后,登录屏幕state值不会保留在 StateNotifierProvider 中,我做错了什么?

accountSetupProvider 的state默认设置为介绍屏幕。单击介绍屏幕的 onPressed 按钮后,将state更新为登录屏幕,并正确触发重建以显示登录屏幕。

但是,在颤振热重启或打开/关闭应用程序后,会显示介绍屏幕,而不是登录屏幕。在 Intro Screen 中单击 onPressed 后,现在设置为 Sign In 屏幕的不应该state在重新启动之间持续存在并导致 Intro Screen 被跳过并显示 Sign In 屏幕吗?

正如您在下面看到的,main.dart有一个初始 AppRoutes。路由。在app_router.dart,这个“根”屏幕打开root_screen.dart,它是ConsumerWidgetwatch的 StateNotifierProvider,在 中称为“accountSetupProvider” account_setup_provider.dart

主要.dart

app_router.dart

root_screen.dart

intro_screen.dart(仅包括onPressed介绍屏幕的一部分,我希望将状态设置为新屏幕,即使在颤振热重启或应用重启后也是如此。)

account_setup_provider.dart(初始化到AppRoutes.intro屏幕。)

0 投票
1 回答
171 浏览

flutter - 如何使用 StateNotifierProvider 中的 StreamProvider?

我尝试使用 StateNotifierProvider 中的 StreamProvider。

这是我的 StreamProvider,到目前为止工作正常。

现在我正在尝试填充我的购物车,以便从头开始将所有产品放入其中。

这是我的 CartRiverPod StateNotifier