问题标签 [flutter-state]

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

flutter - 哪个是更快和性能更好的 Provider、bloc 模式还是 flutter_redux?

我需要在全球范围内管理状态,我找到了很多方法,通过使用Provider bloc pattern redux等来管理状态。

但实际上我不知道,哪个更快,性能更好

示例:我正在开发聊天应用程序,我必须在socket connection messages online offline status全球范围内对其进行管理。需要从所有屏幕访问状态,例如ChatList屏幕、ChatBox屏幕等...

0 投票
1 回答
153 浏览

flutter - Flutter 状态的问题

这是一个 Flutter 的实验。我试图在 Flutter 中创建一个段落生成器。做了一个用户界面

在此处输入图像描述

List<String>.

data.dart

我想将此列表中的第一项作为 的标题AppBar(),并且它起作用了。然后我想从这个列表中删除第一个项目(用作AppBar标题)并继续使用列表中的其余项目来构建body:UI。

当我们第一次打开此页面时,这工作正常。从下一次开始,每次打开和关闭页面时,我们都会丢失列表中的第一项。即使页面是StatelessWidget我们丢失了项目并最终列出了项目用完。

我尝试过的事情:

  • 我尝试将页面和小部件更改为StatelessWidget.
  • 试过后退按钮和override页面。AppBarpop()
  • 复制List<String>到一个新的变量。
  • 用了dispose()方法。

仍然会发生同样的情况。可能是什么问题?添加下面的代码。

main.dart

home_page.dart

page_one.dart

page_two.dart

button.dart

0 投票
1 回答
1348 浏览

flutter - 使用 Navigator 时保留页面状态

我有一个显示四个不同页面的 PageView() 和一个用于导航到这些页面的 BottomNavigationBar。当我使用 Navigator.push() 推送第二条路线并使用 Navigator.pop 将其弹出时,我在第一页上有一个 FloatingActionButton 初始页面重新构建,当我在第四页上使用它时也会发生同样的事情,返回第一个屏幕,而不是与我在该页面上执行操作时相同的屏幕。那么如何在保留该页面状态的同时导航回同一页面呢?

我使用 AutomaticKeepAliveClient mixin 来保存页面的状态,同时通过底部导航栏导航,但使用 Navigator 无法做到这一点。

Andrea Bezzito 的这篇文章 确实涵盖了其中的某些部分,但我不确定这是否正是我想要的。所以想寻找替代解决方案(如果有的话)。

谢谢你。

0 投票
1 回答
805 浏览

flutter - Navigator.push():错误:在此消费者小部件上方找不到正确的提供者

我试图在我的 Flutter 应用程序中实现一些基本的状态管理。在小部件树的某个地方,我有一个用户提供者。更下方的小部件可以使用消费者用户小部件访问用户。但是,使用 Navigator.push() 构建了一个小部件(以下代码中的 WidgetB)并且无法访问用户。按下按钮将引发错误:

错误:在此消费者小部件上方找不到正确的提供者

如何访问 WidgetB(或 WidgetB 的某些子 Widget)中的用户?

0 投票
1 回答
565 浏览

flutter - 在构建期间调用 Flutter 提供程序抛出错误 setState() 或 markNeedsBuild()

我正在尝试学习如何使用提供程序包,版本 4.0+。我有颤振团队提供的复制粘贴解决方案并在我的模拟器上运行它。问题是,当我第一次运行它(冷启动)时,我收到以下错误消息:

错误图片

当我刷新应用程序时(意思是,当我单击 VS Code 中重新构建应用程序的刷新箭头时),它突然开始工作。这意味着,该问题仅发生在第一次(冷)启动期间。

我真的很想学习如何使用这个包;但是由于未知原因,它会引发此错误。正如我阅读其他文章一样,人们试图在构建方法期间修改实现 ChangeNotifier 的类的值;但是在这种情况下,情况不应如此。

对此问题的任何帮助将不胜感激。

PS这里是我正在使用的实际源代码:

0 投票
2 回答
4985 浏览

flutter - Flutter 提供者状态管理、注销概念

我正在尝试为我的应用程序实现自定义注销解决方案,无论用户当前在哪里,一旦Logout button单击,应用程序将导航回Login page.

我的想法是,我不会在每个组件上监听状态变化,而是在主组件 -> 上设置一个监听器MyApp

为了简单起见,我已将项目精简到最低限度。这是我的 Profile 类的样子:

现在,在 下Main,我已将此提供程序注册如下:

最后是MyApp组件:

我的想法是,由于MyApp组件是master,我应该能够创建一个消费者,如果当前用户已通过身份验证,它将被通知,并会做出相应的响应。

发生的事情是,当我在例如MyHomePage组件中并单击Logout()如下所示的方法时:

我期望在更改属性后,初始MyApp组件会做出反应并生成LoginPage;事实并非如此。我已经尝试从相同的结果更改ConsumerProvider.of<Profile>(context, listen: false)尚未。

为了使这个概念起作用,我需要做什么?这样做是否正确?

我的意思是我肯定可以Profile以某种方式更新我的课程,我添加以下方法:

然后简单地调用Provider.of<Profile>(context, listen: false).logout(),但是我认为 Provider 包是为此设计的......或者我错过了什么?

任何有关此事的帮助将不胜感激。

0 投票
1 回答
99 浏览

flutter - 在flutter中,您可以设置appbar背景以根据下拉框的值进行更改吗?

我的下拉框循环通过 5 个字符串 ['blue','red','yellow','orange','grey']

我希望我的 appbar 标题是那个下拉框,并希望下拉框中的值确定 appbar 颜色

下拉列表(ddw)显示为标题,没问题。

我用这些字符串作为键和相应的颜色作为值制作了一个字典,但是我无法使用下拉列表的字符串值来更改背景。

有什么建议么?

0 投票
1 回答
1756 浏览

flutter - Provider/ChangeNotifier:在构建 Widget 后设置状态

我使用 Provider/ChangenNotifier 模式来处理官方文档中描述的状态。

我有一个状态字段,我想在构建小部件后设置它。但是,如果我尝试在构建方法中进行设置。我得到一个错误:

在构建期间调用 setState() 或 markNeedsBuild()。

我在哪里可以调用类似的东西:

0 投票
5 回答
22051 浏览

flutter - 如何在 Flutter 应用程序的 initState 期间使用来自 Provider 的数据

我正在通过添加 Provider 作为状态管理来重构我的 Flutter 应用程序代码。

期望的行为:当主屏幕打开时,应用程序应检查用户的电子邮件是否已验证,如果未验证,则应显示对话框弹出窗口。

问题:当我通过构造函数为 EmailVerified 传递数据时它工作正常,但是如果我想使用 Provider,我无法在initState()生命周期中获取这些数据。

您能否向我推荐这种用例的正确方法?

0 投票
2 回答
36 浏览

flutter - 从外部小部件保存状态

我有一个带有操作按钮的应用栏的外部脚手架,单击该按钮时我想将内部 Stateful 小部件的状态保存到 perm 存储 - 能够从外部应用栏调用内部小部件方法的最佳方法是什么并且还可以在被调用的方法中执行 Scaffold.of(context) 吗?