问题标签 [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.
flutter - 通过单击 FancyBottomNavigation 选项卡屏幕上的列表项导航到新屏幕时,Flutter 应用程序崩溃
我正在重建一个已经使用 Flutter 使用原生 Android 开发的应用程序。我是 Flutter 和 Dart 的新手。但是,我保留在我以前的 UI 中,并进行了最小的更改。但是,到目前为止,浏览一切都做得很好。所以,让我解释一下我的工作。B'coz 我找不到这个问题的确切根本原因。首先,我有一个带抽屉的主屏幕。在其中,我使用 FancyBottomNavigation 实现了一个带有 3 个子选项卡屏幕的bottomNavigationBar. 一个选项卡有一个从 PHP 脚本中检索数据的动态列表视图。这部分完全可以正常工作,没有任何错误。接下来,我为每个项目列表实现了一个 onTap。当用户单击这些列表项时,导航到具有另一个动态列表视图的第三个屏幕。这就是错误的来源。第三个屏幕加载了列表数据而没有崩溃。但是这个导航抛出异常。此外,该屏幕上还有底部导航栏的剩余部分。然后,当按下后退按钮时应用程序崩溃。我已经多次尝试解决这个在 Internet 上解决的问题。* 为选项卡实现了 PageStorage * 为控制器添加了 dispose * MetiialApp 用于第三个屏幕,而不是 Container、Column...
所以,我需要解决这个崩溃问题并从第三个屏幕中删除那个底部导航栏图标。请帮助我解决这些问题并了解根本原因。
请参阅下面的导航到第三个屏幕时的例外情况。
请参阅下文了解按下返回按钮时的例外情况。(应用程序崩溃)
HomeScreen - 带有 3 个选项卡的第一个屏幕
子选项卡屏幕 - 包括列表视图的第二个屏幕
onTap - 列表视图项
第三个屏幕 - 包括 seconf 动态列表视图
flutter - 颤振在小部件的多个实例之间共享状态
在我的颤振应用程序中,我有一个ConnectivityStatus
小部件,它显示应用程序与我的树莓派的当前连接状态。在initState
我的小部件中,我订阅了一个计时器以每 5 秒检查一次连接并相应地更新状态,然后在处理时取消订阅。
问题是,当多个屏幕使用ConnectivityStatus
小部件时,例如在堆栈导航器设置中,我现在有两个并发订阅,因为两个实例都没有处理。这会导致出现许多多余的、不需要的请求。
我真正想要的是在多个屏幕上共享一个小部件实例,或者让多个实例可以访问一个全局状态。
我怎样才能做到这一点,或者我的问题有哪些其他推荐的解决方案?
flutter - Flutter DropdownButtonFormField 不显示所选项目
使用 DropdownButtonFormField 元素显示城市列表。它在更改事件上工作正常,并在更改事件上显示所选项目。问题是,一旦我尝试从设置状态显示所选项目,它就无法正常工作。尽管状态已成功设置并正常工作。
这是我的 DropdownButtonFormField 代码:-
我在 InitState 中设置了 _city
但它没有显示选定的值。我该如何解决?意思是当我想从 initState 设置 _city 的值时它不起作用
flutter - 如何在 Flutter Application 的仪表板上刷新计数值?(遵循 BLoC 模式)
对于如图所示的仪表板设计,我必须显示从 API 获取的各种计数。每个计数都将通过查看标签从不同的 API 中获取。
我开发的结构,
DashboardScreen
CustomBottomMenuOptionWidget
(标签) -StatelessWidget
MenuCountPage
(label) -StatefulWidget
(为了显示计数,我MenuCountScreen
使用了单独的小部件event
,并根据标签使用state
& )bloc
当应用程序打开时,一切正常。对于每个不同的菜单选项,我可以获得每个标签的计数。我的主要问题是用户在应用程序中前进并创建一个新事件,当返回仪表板时,我如何刷新此计数或简单地说我如何将事件添加到BLoC
以MenuCountScreen
获得更新的值?
当前实施:
仪表板.dart (GridView)
HomeBottomGridMenuItem.dart
MenuCountPage.dart
MenuCountScreen.dart
MenuCountEvent.dart
MenuCountState.dart
MenuCountBloc.dart
我已经尝试过的事情:
由父(来自“仪表板”)提供
BLoC
,当用户返回仪表板时尝试添加事件以获取更新的计数。没用。(如果是因为我有基于标签的不同 API 调用,并且每个计数都与它自己的 MenuCountBloc 实例相关联 - 如果我错了,请清除我)尝试获取一个
bool
值并将其传递给MenuCountScreen
fromDashboard
,当用户返回仪表板时更新该值,bool
认为它会刷新并再次调用事件但没有奏效。除了尝试过的选项 1,采用 4 个不同的
int
参数来存储 4 个不同的计数BLoC
以及MenuCountState
.BLoC
以为它会为我提供的4 个值存储Dashboard
. 但没有奏效。我想知道,我的实现方式是否正确以及我尝试过的事情。也是一个可能的解决方案来完成我被卡住的任务。
编辑: 我推到这里的示例项目:GitHub
flutter - 如何在不使用任何库的情况下在颤振中使用 bloc
我想用 管理我的应用程序的状态,我bloc pattern
在互联网上搜索并找到了很多主题,但所有主题都third party libraries
在我不想要的地方使用。
那么是否有任何资源或示例可以帮助我们在bloc pattern
不依赖任何外部库的情况下使用,例如:bloc, flutter_bloc, rxdart
?
我只想使用这些flutter built-in
功能,而不是任何其他库。
flutter - 业务逻辑和 UI 逻辑有什么区别?
我正在学习状态管理flutter
,大部分时间我都会遇到单词business logic
ui logic
,有一段时间presentation logic
,我在互联网上搜索它,因为人们用不同的语言解释它,我无法更好地理解,有人可以展示这三种类型logic
以示例的形式并解释它非常干净和容易吗?
flutter - 在 Flutter 中,当子组件的 build 方法中没有回调时,如何从子组件中读取数据?
我有一个 AppBar 按钮,我想在其中读取 childData 列表并对其进行处理:
ChildWidget 使用 StreamBuilder 并遍历快照并在将快照附加到列表之前执行其他操作:
我尝试使用回调函数通知父小部件进行刷新,但这会产生setState() or markNeedsBuild() called during build
错误,因为它在 ChildWidget 的构建方法期间设置状态。我的流构建器中肯定有数据,因为它在其他地方使用,目前没有问题。
像 Provider 这样的状态管理包似乎只向子小部件提供数据,而不是把它们传回来,而且我读过使用全局变量是不受欢迎的。将 childData 列表添加到 Hive 之类的数据库包中,然后在我的 ParentWidget 中读取它是否也是不好的做法?我不一定要重建父小部件 - 只需在单击 AppBar 按钮时读取子小部件中的数据。
谢谢。
flutter - 如何从 Firebase 存储中检索元数据?
我已经使用了这种方法,但它似乎不起作用如果上面的方法是什么
flutter - 每当我使用 bottomNavigationBar 导航时,变量都会重置为默认值,但如果我将新项目添加到列表中,则会重新出现
应用程序的功能
它在底部导航栏中有两个项目,在第一部分(课程)中,用户可以添加课程列表,每次添加新课程时,它将更新他们的整体 GPA 和最高平均水平。另一个是简单的“我需要在决赛中获得什么才能通过”部分(决赛预测器)。
以下是屏幕顶部的代码,显示了用户的整体 gpa、课程数量和最高平均值
问题
如果我添加课程,一切都会正常工作,并且将显示需要显示的所有内容。如果我导航到决赛预测器,然后返回课程,课程列表仍会显示,但总体 GPA 和最高平均数会回到 0.0。
带有底部导航栏的选项卡屏幕的代码
main.dart 文件中的代码
课程列表输出代码
调用 TopDisplay 的主页文件
flutter - ReorderableListView 中的 StatefulWidgets 在重新排序列表时不保持其状态
在这里,我有一个精简的页面,它创建了一个ReorderableListView
,它的主体设置为两个RecipeStepWidget
s 并UniqueKey
设置了 s (我也尝试过使用ValueKey
and ObjectKey
)
该类RecipeStepWidget
是(忽略包括):
当我在 中编辑文本字段或复选框,RecipeStateWidgets
然后通过单击+拖动它们在列表中重新排序它们时,小部件将重置为其默认状态。
有谁知道为什么会这样?ReorderableListView
我认为为了让它按预期工作,我所要做的就是为它的每个孩子设置一把钥匙。这不正确吗?
谢谢!