- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Flutter 开发一个相当复杂的跨平台(Android/iOS/网络)应用程序。我是 Flutter 的新手,有 Android 和 iOS 的原生开发背景。
我一直在研究在 Flutter 中处理导航和状态管理的最佳方法,到目前为止我的结论是最好的方法是使用 Navigator 2.0 API 结合 Riverpod状态管理库。据我所知,这些似乎是 Flutter 中用于导航和状态管理的最新和最强大的库。
但是,我发现弄清楚如何将 Riverpod 与 Navigator 2.0 集成并不容易。作为一个刚接触这两个库和 Flutter 的新手,我很想在文档(Navigator 或 Riverpod 的文档)中找到一些典型的例子来说明应该如何完成,但我还没有找到了这样一个例子。如果没有,我将非常感谢有关如何执行此操作的任何指导,特别是关于 Riverpod Provider 的多种类型中的哪一种最适合处理导航状态的工作。例如,选择 ChangeNotifierProvider 的理由是什么?在 StateNotifierProvider , 或相反亦然?有没有其他类型的 Riverpod Provider 比这两种提供程序都更好?
最佳答案
我把这个问题复杂化了很多,甚至做了一个巨大的路由器来绕过它(ray wenderlich 有一个 flutter 路由器的例子和其他一些教程)。我还尝试了一些其他用于路由的包,但它总是会以某种方式弄乱我的 UI
实际上归结为我必须将上下文传递给我的子类。因此,在任何不直接在您的 MaterialApp 路由中的构造函数中,您将执行 MyClass(BuildContext context,{required this.whatever});然后将其称为 MyClass(上下文,无论什么)。其余的使用 Navigator.pushnamed(context, routename) 对我来说工作正常。我有应用栏和带有导航选项的菜单,所以它更复杂。
我希望这是有道理的。 Flutter 的网站提供了有关设置 MaterialApp() 以及命名路由的信息。
您始终可以将自己的列表设置为堆栈,他们在 flutter 文档中提到了其中的一些,但听起来这是一种更复杂的处理方式。我知道 Providers 使用类,因此推而广之,我认为他们可以使用列表。
关于flutter - 应该使用哪个 Riverpod Provider 结合 Navigator 2.0 来处理导航状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67838167/
我有一个应用程序,需要在提要屏幕上显示视频上传进度指示器。返回上传进度的代码位于视频客户端类中,该类不在 Feed 屏幕的小部件树中,并且在视频开始上传时,Feed 屏幕甚至没有打开。 我想要做的是使
我正在尝试学习 Riverpod,我有一个 ChangeNotifierProvider,它有一些字段需要使用从异步操作返回的值进行初始化。这可能吗,据我所知,我无法异步创建 ChangeNotifi
我一直在尝试使用从我的auth Provider获得的uid创建流到Firestore文档的流: class AuthService { ... static final provider =
我有这个片段: final countProvider = StateProvider((ref) { return 0; }); class CountWidget extends Consum
我有这个片段: final countProvider = StateProvider((ref) { return 0; }); class CountWidget extends Consum
我有两个 StateNotifierProvider,想在一个小部件中监听这两个状态变化。我能想到的一种方法是嵌套两个 ProviderListener。但是,如果在 Bloc 包中有一个类似于 Mu
我正在尝试联系 Riverpod,但遇到了一些问题。 我创建了一个用于登录用户的表单,我试图在用户登录时更改主视图。我的问题是,当我设置更改状态并导航回应用程序根目录时,新状态似乎不可用。但是,如果我
我正在学习 Flutter。大多数教程使用 Provider 包,但 Youtube 上的其他一些教程使用 GetX。我搜索了一下,发现似乎还有其他软件包,如 Bloc、Riverpod 等。 我一头
我习惯于调用提供者的 Provider.of() 来从小部件树的其他位置获取提供者,但我发现的每个 Riverpod 资源都依赖于对提供者变量的访问权限(通过将两个小部件放在同一个文件中)。对于仅通过
假设我想通过使用 TextFormField 上的 initialValue: 属性来初始化文本字段,并且我需要来自提供者的初始值。我在 docs 上阅读从 build 方法内部调用 read() 被
我编写了一些代码,为 StateNotifier 提供 ApiService。 ApiService 依赖于 authenticatorclient - auth 客户端必须异步创建,因为它使用 sh
我正在开发一个新的应用程序并使用状态通知器测试 Riverpod,并且有一个关于在构建页面时可以在哪里加载初始数据的问题。 我有以下状态类: abstract class SalesOrderList
当我点击他们网页上的后退按钮时,我在 StateNotifiers 中收到此错误。我已经将它隔离到发生在 longRunningAPI 的地方请求如下。 Exception has occurred.
我正在使用提供程序进行状态管理(实际上是 riverpod )在我的项目中,我有一个选项卡 View 并将每个选项卡用于一个类别,每个选项卡都显示新闻列表。 tabview 大小不固定,我对所有选项卡
我正在使用提供程序进行状态管理(实际上是 riverpod )在我的项目中,我有一个选项卡 View 并将每个选项卡用于一个类别,每个选项卡都显示新闻列表。 tabview 大小不固定,我对所有选项卡
我在提供程序中有多个值(在类中),当我在提供程序中使用 autoDispose 修饰符时,我只想处理提供程序中的几个值是否可以这样做? 我已在互联网上搜索过此内容,但没有找到与此要求相关的任何资源。
我想手动覆盖我的 StateNotifierProvider 状态以进行测试。可以使用 ProviderContainer 或 ProviderScope 覆盖提供程序。但它只提供覆盖通知程序的选项,
在使用 Riverpod 作为我的状态管理工具时,我一直在使用我发现的反模式。我做了用户问的this question did: 更新你想改变的属性并添加state = state。这个解决方案一直有
我有一个非常大、复杂的应用程序,其中包含许多页面,其中包含带有大量字段(文本、日期选择、组合框等)的输入表单,因此状态相当大。我正在从 Provider 切换到 Riverpod,建议的状态管理方式似
我有一个 StateNotifierProvider这取决于 FutureProvider .目前它们如下所示。 final catalogProvider = StateNotifierProvid
我是一名优秀的程序员,十分优秀!