问题标签 [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 回答
241 浏览

android - 在 deactivate() 中调用 notifyListeners() 会导致错误 - Flutter

我已阅读与此问题相关的所有问题,但它们都与我的不同。

我有两个页面:主页和设置页面。在主页上,我用 . 监听提供者的变化Consumer。在设置页面中,我不听更改:

我已经删除了不必要的代码。我在上面的代码中尝试做的是更改一些应用程序设置并在我离开该设置页面时应用它们。

finishSetting()方法:

错误:

我知道Widgets 的notifyListeners()调用方法正在监听它。build()但是当我离开设置页面时,我没有看到任何小部件的build()方法被调用。我应该怎么办?

notifyListeners()一般来说,我离开页面时有没有办法打电话?

0 投票
0 回答
339 浏览

flutter - 从 Flutter 中另一个独立 StreamProvider 的响应更新依赖的 ChangeNotifierProvider

我最初是使用简单的更改通知提供程序开发我的应用程序。后来我决定使用 Firestore 和 StreamProvider。现在我有一个返回列表的流。从 Stream Provider 获取数据后,我想在 Change Notifier 中填充我的列表。更改通知器具有不同的功能,我的小部件正在使用这些功能来获取中央列表的不同子集。这就是为什么我不希望小部件直接使用流。我希望他们使用将由 StreamProvider 更新的更改通知程序提供程序。

现在您可以看到,在多提供者数组中,我有我的更改通知提供者和流提供者。当我从 DatabaseService.getUserTodoList() 获取更新列表时,我想更新 TodoProvider 类中的列表。在这种情况下代理提供者有用吗?感谢您阅读帖子。任何帮助将不胜感激。

0 投票
0 回答
30 浏览

firebase - 可以将 userData 写入 Firebase,无法从 Firebase 读取到字段:Flutter

当用户试图编辑他们的信息时,我试图将我的 UserData 读入表单字段。我可以写入 Firebase,但我无法读取用户数据并将其显示到内置字段中。每个 userData 都以登录用户的 mid 作为 userData 的 id 来存储,以便区分。

我错过了什么?请参阅下文了解我的尝试。

这是我的 UserData 模型:

这是我的 UserData 通知程序类:

这是我的编辑用户配置文件表单:

0 投票
1 回答
271 浏览

flutter - 使用 ChangeNotifierProvider 在更新状态上更新小部件

我是 Flutter 的新手,我试图让用户界面在用户触发操作时刷新页面,例如按下按钮以更新此订单项目状态。我使用 ChangeNotifierProvider 为我的小部件提供了以下代码。

我有一个名为 updateStatus() 的函数。

但是,我找不到更新 UI 的方法。请帮忙。

0 投票
0 回答
66 浏览

flutter - Flutter:小部件不会在 Tap 上动态更改

我想用模型的 isUserRegistered 动态更改屏幕。

如果 isUserRegistered 为 True,我想显示在单击时将 isUserRegistered 设置为 false 的 Icon。如果 isUserRegistered 为 False,我想隐藏图标。

我尝试使用setState,但小部件没有改变。我认为在Widget里面设置可能不好isUserRegistered = sites.isUserRegistered;,但我不知道如何改进它。

请帮助我。

0 投票
1 回答
200 浏览

flutter - ChangeNotifierProxyProvider 颤动未从 ChangeNotifierProvider 获取更新

我正在尝试userModel.uidUserProvider内部访问,ItemProvider以便它可以加载_savedItems

但是,当我调用时loadUserSavedItems()_userId为空。

这是我的 main.dart

用户提供者.dart

ItemProvider.dart

有人可以帮助我吗,我不太确定我错过了什么userModelItemProvider.dart当实现为ChangeNotifierProxyProvider.

0 投票
1 回答
656 浏览

flutter - 当我们在 ChangeNotifier 中使用 notifyListeners 时?

为什么我们有时使用 notifyListeners 以及为什么我们不使用 notifyListeners?我们如何在 changenotifier 中使用函数?

例如,在这段代码中,有时我们使用 notifyListeners,但有时我们没有使用 notifyListeners(在 login() 函数中)。为什么 ?当我们使用 notifyListeners 时?

除了有人能回答我为什么我们在这段代码中使用 set 方法

0 投票
2 回答
188 浏览

flutter - 不确定如何正确实现 ChangeNotifierProvider 以记住 Flutter 中的登录用户

我有一个具有工作用户注册的应用程序,并且使用用户提供程序可以在注册期间设置用户并在以下屏幕上检索它而不会出现问题。我遇到的问题是尝试正确实现在应用程序启动时设置存储的当前登录用户并进入仪表板的能力,而不是在不抛出以下断言的情况下完成注册过程。

我可以毫无问题地获取用户,SharedPreferences但是我不确定如何在我的提供程序中正确设置此用户,以便在仪表板屏幕加载时可以访问它。下面是我的main()函数和 MyApp 类。

在 FutureBuilder 中,我尝试在getUserData()调用上链接一个 then 来设置用户,但这当然会返回以下断言:

从我读过的内容来看,这是因为notifyListeners()在用户提供程序中有一个调用,它将调用markNeedsBuild(). 也就是说,我已经尝试在网上移动一些东西和一些建议,但无法弄清楚实现这一点的最佳实践和最佳方法是什么。

用户提供者:

如果有人已经登录而没有遇到上述断言,我如何在应用程序加载时正确设置用户?谢谢!

0 投票
2 回答
1169 浏览

flutter - 如何在 Flutter 中使用 changeNotifier 与提供者

我正在为我的项目使用提供程序包。我使用 ChangeNotifier 在我的 Auth 模型中创建了两个函数。第一个是身份验证,第二个是 tryAutoLogin。如果我调用 tryAutoLogin 函数,那么 getter 会得到类似 userCode 的值,得到我在函数中分配给代码变量的值,就像其他 getter 一样。但 authenticate 没有得到值。你能告诉我我做错了什么吗?

0 投票
1 回答
370 浏览

flutter - 尝试从类中读取数据但返回 null 而不是其实际值 - 使用 Flutter Provider

我有以下问题。我想从 class1 中读取一个变量。读取变量的命令来自另一个类。但是它返回null。这不是我的实际代码,但是我编写了一个演示应用程序来说明问题:当我按下一个按钮时,它应该将 5 添加到存储在 class1 中的名为“number”的变量中,并将使用提供程序包显示在文本小部件中. 然后我想从另一个类中读取变量“数字”。为了显示这是否有效,我在 onPressed 函数中放置了一个打印语句,以显示我的 class2 是否从 class1 获取了值。但是我总是返回 null,我不知道为什么。

简而言之,这是我的 onPressed 函数和两个类:

要么 class1 中的变量“number”没有改变,要么 class2 无法从 class1 中读取变量“number”并将其存储在自己的变量中。

感谢您的帮助!

这是整个演示程序: