问题标签 [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.
flutter - Riverpod:是否有在另一个 StreamProvider 中读取 StreamProvider 的正确方法?
我一直在尝试使用从我的 auth 获得的uid创建流到 Firestore 文档的流Provider
:
但是,我正在努力实际创建一个StreamProvider
依赖于 auth 的值Provider
。
我还尝试使用Computed
返回uid或流本身,但您无法Computed
从 a中读取 a Provider
(回想起来这很有意义)。
这个问题与这个主题最相关,但它涉及的是 Provider,而不是 Riverpod。
PS 可以创建 Riverpod 标签吗?
编辑:
答案并不完全正确。await for loop
仅触发一次,而侦听器捕获所有事件。
此代码在登录时产生以下内容:
然后在注销时:
LISTENED: null
我希望看到uid: null
的地方也会更新流,但是在任何更多的身份验证事件中,只有侦听器被触发并且没有事件被await for loop
.
有趣的是,使用颤振检查器,auth 提供者发出的值也永远不会改变:
AutoDisposeStreamProvider<FirebaseUser>#95f11: AsyncValue<FirebaseUser>.data(value: FirebaseUser(Instance of 'PlatformUser'))
通过登录/注销事件持续存在,这可以解释这种行为,但我不确定如何修复它。
有任何想法吗?我已经坚持了一段时间,无法纠正这个问题。
flutter - Flutter Riverpod:成员“state”只能在“package:state_notifier/state_notifier.dart”的子类的实例成员中使用
我有一个关于切换小部件的简单示例,我希望在单击按钮后显示圆形进度指示器,然后在 3 秒后显示文本。对于我的示例,我使用riverpod_hooks和flutter_hooks。
加载提供者
主要.dart
但是当我按下按钮时,它不显示 progressIndicator 并且仍然显示文本并且我收到了这个警告:
The member 'state' can only be used within instance members of subclasses of 'package:state_notifier/state_notifier.dart'.
我错过了什么?
我的源代码遵循这样的文档:
flutter - 实施 ChangeNotifier 与 StateNotifier
我对Provider包非常熟悉,并将其与ChangeNotifier
.
假设我有 3 个具有不同功能的 getter 和方法:
- 切换加载
- 切换图像加载
- 切换 ObsecurePassword
使用 ChangeNotifer
如果我正在使用ChangeNotifier
,我只需要创建 1 个文件并调用类似的方法globalChangeNotifier.METHOD()
或类似的值globalChangeNotifier.value
。
但是现在,我已经了解了Riverpod包,并且在文档中,它使用StateNotifier
.
我想将我以前的代码ChangeNotifier
从StateNotifier
. 但据我了解,StateNotifier 只能保存 1 种类型的数据,所以如果我想迁移上面的代码,我应该创建 3 个文件,比方说:
provider_isloading.dart
,provider_isimageloading.dart
和provider_obsecurepassword.dart
.
使用 StateNotifier
而且我还需要创建 1 个文件来导出所有这些文件:
GlobalStateNotifer.dart
我的问题是,按照我之前的解释,这是最好的做法吗?
我的文件夹结构
flutter - Flutter Riverpod:如何实现 FutureProvider?
我使用Flutter Riverpod包来处理 http 请求。我有简单的 Http获取请求来显示来自服务器的所有用户,并且我使用Flutter Riverpod包中的FutureProvider来管理它。
API
用户提供者
设置完成后,我可以像这样调用showAllUser:
如果http请求没有必需的参数,那没问题,但是如果我的http请求需要参数,我就遇到了问题。我不知道如何处理这个。
假设,我有另一个 http get来显示来自 id 用户或电子邮件用户的特定用户。然后 API 看起来像:
API
用户提供者
当我使用 userProvider 从 userProvider 访问 idUser 时usrProvider.state.idUser
,我收到了这个警告。
The member 'state' can only be used within instance members of subclasses of 'package:state_notifier/state_notifier.dart'.
我的问题与这个问题类似,但是在那个问题上我已经知道使用解决了read(userProvider.state)
,但是在FutureProvider中我无法使用ref(userProvider)
.
我错过了什么?
flutter - 将 ChangeNotifier 从 provider 迁移到 hooks_riverpod
我想将我的整个项目从提供者转移到 Riverpod。但我被困在这一点上。
这是我的子小部件提供程序小部件。它只初始化一次。我怎样才能把这个类写成一个带riverpod的HookWidget?
flutter - 使用自定义 ChangeNotifier 初始化riverpod Provider
我只是在试用新的river_pod,颤振状态管理库。我的目标很简单。GestureDetector
在主页中监听垂直拖动并相应地更新动画控制器。我想在别的地方听这个动画。我编写了以下代码,它按预期工作。但我不觉得我正在以正确的方式初始化提供程序。
由于创建 的实例需要动画控制器实例AnimationNotifier
,因此只能在_controller
初始化后完成。所以在 中initState()
,我已经初始化了_controller
和animationProvider
。这是使用riverpod的正确方法Provider
吗?如果不是,可以进行哪些修改?
flutter - Flutter Riverpod:发布失败
我目前正在尝试使用flutterriverpod学习,但是当我尝试放置flutter_riverpod包时出现问题,我收到了这个错误
我能做些什么来解决这个问题?我试图添加riverpod包,但它也不起作用
flutter - 有没有办法在riverpod的提供者中传递参数
如何将 FirebaseAuth 用户传递给 Riverpod 中的 StreamProvider?
使用旧的提供程序包时,我曾经从 FirebaseAuth 获取 user.uid 并将变量传递给 StreamProvider,如果我们可以获得 user.uid,则返回 StreamProvider。
flutter - Flutter RiverPod:如何将每次运行的后期处理添加到 FutureProvider?
在我的应用程序中,我使用riverpod和flutter_tts包来朗读http 响应。首先,我在 FutureProvider 中获取数据后添加它,如下所示:
但即使使用相同的 itemId 多次调用 FutureProvider,它也只是第一次被大声朗读。
其次,我在build
方法中添加了它,但是在重建小部件时它总是被大声朗读。
有什么想法可以解决这个问题吗?
完整代码在这里:
flutter - 使用 Riverpod Flutter 创建登录功能
我是river_pod的新手,如果我说该文档仅适用于超级高级工程师,我不会撒谎
无论如何,我想sign in
使用这个包实现一个功能
它背后的逻辑很简单:-我从用户那里获取电子邮件和密码,然后将loggedIn
状态从is 更改false
为true
这是我的Provider
这是我如何使用它并更改值
我正在使用 context.read 因为我onPressed
在RaisedButton
现在,这有什么问题是,在将值更改为之后,true
我无法flutter
重新处理build
所有内容并使用新的variable
我怎样才能实现这样的事情?我什至做得对吗?