问题标签 [flutter-change-notifier]

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 回答
152 浏览

flutter - ChangeNotifierProxyProvider 未在构建时启动

我正在尝试了解 Flutter 中的多提供者。在我的应用程序中,一个 Provider 需要根据另一个 Provider 的值进行更改。

AuthProvider 在构建时在小部件树中的较高位置启动。如果可能的话,它就像一个带有自动登录的魅力......

在较低位置的小部件中,我尝试启动另外两个提供程序。一,WhatEver,不依赖于其他数据,并在构建时启动,就像它应该使用 ChangeNotifierProvider 一样。

然而,ProductList 依赖于 AuthProvider。如果登录状态发生更改,则产品列表应相应更新。

在我的尝试中,我发现,即在 SO 上发现,ChangeNotifierProxyProvider 是正确的方法。但是当我运行应用程序时,似乎在构建小部件时没有启动 ChangeNotifierProxyProvider 的“创建”部分。似乎 ProductList 提供程序在被读取或写入之前不会启动。

我对使用 MultiProviders 和 ChangeNotifierProxyProvider 有什么误解?

产品列表如下所示:

0 投票
1 回答
514 浏览

flutter - Flutter ChangeNotifierProxyProvider ChangeNotifier 在创建需要参数

我正在编写我的应用程序,需要使用 ChangeNotifierProxyProvider。不幸的是,我的 ChangeNotifier(在本例中为 Entries)需要 3 个位置参数。我已经设法在更新中指定了参数,但是如何在创建中做到这一点?

我会很高兴得到答案,因为我在互联网上找不到任何东西。

嘿!我正在编写我的应用程序,需要使用 ChangeNotifierProxyProvider。不幸的是,我的 ChangeNotifier(在本例中为 Entries)需要 3 个位置参数。我已经设法在更新中指定了参数,但是如何在创建中做到这一点?

我会很高兴得到答案,因为我在互联网上找不到任何东西。

这是我的供应商代码:[]:

0 投票
0 回答
33 浏览

flutter - ChangeNotifierProvider 用于多重继承

我有以下服务结构,而不是一个巨大的 A 类:

我可以执行以下操作:

但是有没有其他方法可以一步提供所有子类,而不是在MultiProvider.

0 投票
5 回答
3917 浏览

flutter - Flutter 中 ChangeNotifier 的构建器小部件

背景

  • AValueNotifier有一个ValueListenableBuilder小部件。
  • AStream有一个StreamBuilder小部件。
  • AFuture有一个FutureBuilder小部件。

问题

  • 建造者是干什么用的ChangeNotifier

我试过的

我尝试使用ValueListenableBuilderwithChangeNotifierChangeNotifier没有实现ValueListenable.

我知道我可以ChangeNotifierProviderProvider包中使用,但我想知道是否有不需要第三方包的解决方案。

0 投票
4 回答
536 浏览

flutter - 根据 alertdialog 选项更改卡片颜色

我有一张卡片列表,每张卡片都有一个长按功能,点击后会弹出一个警告对话框。我希望卡片根据警报对话框中选择的选项更改颜色。我的警报对话框有 3 个选项:已完成(卡片应变为绿色)、进行中(橙色)、取消(灰色)。

首先,当屏幕加载时,它应该显示一张卡片列表,每张卡片都根据保存在数据库中的值涂上颜色。然后,当用户长按卡片并从警报对话框中选择一个选项时,卡片的颜色应根据所选选项而改变。只有该特定卡的颜色应该改变。

我在某处读到这可能可以使用 valuechangenotifier 来实现。所以这是我到目前为止所做的:

首先,我创建了我的 changenotifier 类,如下所示:

然后我在我的飞镖课上使用了它。但是,颜色似乎没有改变。我在这里想念什么?

根据 Loren 的回答进行第二次尝试。

当我这样做时,它会改变所有卡片的颜色,而不仅仅是一张卡片。我在这里做错了什么?

分享order.dart

}

0 投票
0 回答
161 浏览

flutter - ChangeNotifier 不更新小部件

每次将新元素(位置)添加到数据库时,我都会尝试更新下面的 listView,但只有在我关闭并重新打开应用程序时才会更新,但在用户导航到 LocationHistory 页面时不会更新

我使用 notifyListeners 通知列表重建自身的 locationHistoryModel

当我导航到列表时,我尝试在此处更新列表的小部件未找到任何更改

0 投票
1 回答
199 浏览

flutter - Flutter - 找不到正确的提供者在此 ChangeLocation 小部件上方

我在我的应用程序中同时使用了 BlocProvider 和 ChangeNotifierProvider。应用程序的流程在这里: -

  1. 第一次用户打开应用程序: InstructionPage() -> WelcomePage() -> HomePage() //得到错误
  2. 第二次用户打开应用程序: HomePage() //工作正常

我使用 sharedPreference 来存储 isInstructionPageLoaded 的值。但是从 WelcomePage() 导航到 HomePage() 出现错误找不到此 ChangeLocation 小部件上方的正确提供程序

这是我的代码:-

//main.dart

//routes.dart

//location_service.dart

//welcome_page.dart - 按下按钮调用下面的方法

}

我在上面的方法becoz中添加了BlocProvider,然后它给我错误 blocprovider.of()调用的上下文不包含从其他屏幕导航的块,从WelcomePage()导航到HomePage()。

提前致谢!!!

0 投票
0 回答
469 浏览

flutter - 全球密钥().currentState.context 在推送时返回 null

我正在使用 Flutter Local Notifications 来管理本地通知。我希望当通知类型为“某些用户加入比赛”时,当通知用户点击通知时,他应该被带到比赛详细信息页面。最好的方法是使用 GlobalKey 作为 navigatorKey 并将其传递给 MaterialApp。但我收到了这个错误。

(PS:这个应用程序包含 MainFrameApp() 内的嵌套导航器,因此,在那里处理对 ContestDetailsPage 的进一步导航。)

我找不到什么原因,上下文为空。我认为使用 ChangeNotifier 的 setState 也可能导致了这个问题。所以我也提供了该代码。

main.dart

身份验证.dart

0 投票
0 回答
257 浏览

flutter - Flutter:Navigation 2.0 上的 ChangeNotifier 问题,页面内有嵌套的 ChangeProvider

我正在尝试使用新的 Navigation 2.0 和 MVVM 模式创建颤振应用程序。总的来说,当我尝试从包含ChangeNotifierProvider以下代码的起始页面更新页面时遇到问题:

app_router_delegate.dart

login_page.dart

我的 login_view_model.dart (只是使用 ChangeNotifier 来监听值变化的常规模型)

当我得到 State.COMPLETED 的结果并调用onLoginSuccess引用稍后将调用的 AppRouterDelegate 函数的方法时,问题就notifyListener()出现了,当发生这种情况时,我收到以下消息的错误:

有谁知道如何解决这个问题?

0 投票
2 回答
222 浏览

flutter - 无法在 Changenotifier 类中创建 getter。在 Flutter 中使用 Provider 时出错

你好,我是新的供应商。我在这里写了我有问题的步骤。1- 之后我调用了 api,我的模型类中有数据。2-然后在 ChangeNotifer 类中,我想制作 Model 类对象中的列表的 getter。我无法将模型类响应数据添加到这个 getter 变量。

现在我正在创建吸气剂

但是当我从我的ProductDetailsS​​creen类中调用这个 getter 时,我得到的是空白数组或 null。

现在我无法更新消费者通知程序中的文本小部件中的值。

这是我的 main.dart

请解决此问题或告诉我另一种使用提供者的模型类调用 Api 的好方法。提前致谢。