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

flutter - 为什么我的“数据”。“数据”没有使用 ChangeNotifierProvider 在 ChangeNotifier 类中更新?

我是新来的。我想问为什么当我的文本字段的 onChange 没有触发时:“Provider.ofContext).updateData(newString);”。我的 Provider.of(context).data 的值没有更新,并且使用 2 个打印语句,始终只打印出“call1”。

这是代码: import 'package:flutter/material.dart'; 导入“包:提供者/provider.dart”;

0 投票
0 回答
87 浏览

flutter - 颤振提供者

尝试为新提供者更新此内容 - 更改了第一个要创建的构建器,但它给出了无返回错误。谢谢

用户资源库

0 投票
2 回答
2030 浏览

flutter - TabBar 和 ChangeNotifierProvider 的一个恼人问题

想象一下这样的场景。

例如:一大堆不同类型的电影。这个想法是一个 TabBar,每个 Tab 都包含一个类型的电影列表。在这种情况下, a ChangeNotifieregMoviesBloc将非常适合需要,ChangeNotifier与 无关Genre。在每个 TabBarView 子视图中,ChangeNotifierProvider.value这里的使用都是错误的,因为每个选项卡都需要保持自己的MoviesBloc状态,所以我将为每种类型提供一个ChangeNotifierProviderofMoviesBloc然后Consumer收听它。我把它们放在一个名为MoviesBlocView.

结果: - 如果按顺序滑动每个选项卡,则没有错误。- 如果刷大量的标签。例如:突然从第一个选项卡到最后一个选项卡(例如:有 20 个选项卡),控制台会抱怨重用已处理,ChangeNotifier尽管每个选项卡都是ChangeNotifier单独创建的。

重现代码

movies_bloc.dart

movies_bloc_view.dart

main.dart

更新

  1. 如果我们使用 wrapper ,无论是否在创建MoviesBlocView时调用,控制台仍然会抱怨getMoviesWithGenreMoviesBloc
  1. 如果我们不使用MoviesBlocView,
    • 尝试getMoviesWithGenreMoviesBloc创建时调用时,控制台会抱怨。奇怪的是现在它有一个不同的错误日志
  • 当我们不在创建时调用时没有错误getMoviesWithGenreMoviesBloc但这没有任何意义,因为如果我们不做这样的级联,那么我不知道如何做,例如在创建时获取请求

任何帮助表示赞赏!

更新

经过一番调试,我发现这是因为 TabBar 的奇怪行为。它也尝试预加载最近的选定选项卡或其他东西,然后在同一个选项卡中连续处理它,而不是一次,两次。

正如 Remi 指出的那样,我需要验证我MoviesBloc在处理它时不会调用 notifyListeners(),在我将此验证添加到我的MoviesBloc工作正常之后

但这不是我所期望的行为,MoviesBloc因为我在创建时调用了该函数,因此我永远不会想象它会在处理该函数后调用该函数。

在这一点上,我真的不知道 TabBar 和 TabBarView 到底发生了什么。如果有人能解释为什么 TabBar 会这样做,我将不胜感激!

0 投票
1 回答
8551 浏览

flutter - Flutter Provider:如何监听类字段内部的类字段变化?

给定以下 Dart/Flutter 类结构:

我正在尝试听的变化,A.element1.x但问题是,B 类的设置者不能调用notifyListeners()A 类的,所以要么我在听 A 并且不会注意到变化,要么我正在听 B 并且我正在失去 A 的上下文。

我在我的 Flutter 项目中使用 Provider 包。但我不确定,如果我误解了 Provider 包或 ChangeListeners 的概念。无论哪种方式,我都无法找到一个优雅的解决方案。

是否有可能从 A 类覆盖 B 类的设置器?我显然可以为每个 element1 和 element2 字段(x,y)实现一个函数。但我猜这不是好的代码风格。

0 投票
1 回答
600 浏览

flutter - 如何让我的更改通知器触发我的警报对话框?

我有一个通知服务,它是一个更改通知器。当服务收到通知时,它会通知所有侦听器。我想在收听者收到通知时显示一个对话框。所以我在我的构建方法中执行以下操作

这是shownotification方法

所以但这会引发错误,因为我想在构建时构建对话框Unhandled Exception: setState() or markNeedsBuild() called during build.

我确实喜欢使用更改通知提供程序。那么我怎样才能使这项工作呢?

0 投票
2 回答
989 浏览

flutter - 在 ChangeNotifierProvider 中使用双点 (..) 运算符/级联

为什么我们必须这样调用AppStateModel()..loadBrands(),级联如何帮助我们?

0 投票
6 回答
19792 浏览

android - Flutter中的参数类型'Widget Function(BuildContext)'不能分配给参数类型'Widget Function(BuildContext,Widget)'错误

这是一个代码:

上面代码中的“builder: (_) => UserRepository.instance()”行显示错误

参数类型“Widget Function(BuildContext)”不能分配给参数类型“Widget Function(BuildContext, Widget)”

每当我运行程序时,它都会显示

在此 LoginPage 小部件上方找不到正确的提供程序

用户存储库代码:

请帮忙

在此处输入图像描述

这是一个登录页面代码:

0 投票
1 回答
854 浏览

flutter - ChangeNotifierProvider 不会创建新的 ChangeNotifier 实例

我有一个平板电脑的主从页面。
当我在列表中选择一个项目时,我想更改详细信息页面。
所以我写了这样的代码,

但是,建造者收到的模型总是相同的值。
因此,更改用户选择不会更改详细信息屏幕。
如何创建新模型?

谢谢你。

[编辑] 这样的 UserListPage 会通知用户选择

0 投票
1 回答
620 浏览

flutter - 如何显示来自 ChangeNotifier 模型的对话框

在我的项目中,当ChangeNotifier类收到状态时,它会设置一个布尔值并调用notifyListeners(). 在我的主要build()功能中,然后我检查挂起的布尔值并相应地显示对话框 - 但我只能通过在构建方法中给它一个小的延迟来显示对话框 - 似乎缺少上下文。


TL;博士:

有没有办法在ChangeNotifier课堂上显示对话框?

0 投票
1 回答
435 浏览

flutter - notifyListeners() 不同时更新 UL

我是颤振的新开发人员,我使用颤振使应用程序失明所以我正在使用提供程序数据包,当蓝牙状态发生更改时我需要更改小部件 UL 我编写了这样做的代码,但在我的代码中,小部件 UL 在运行应用程序后更改第二次不同时更改我可以同时更改小部件吗

类 ChangeNotifier

类小部件

多提供者