问题标签 [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 - 如何在 Flutter 中保持状态变化
嗨,我正在使用 statefulwidget 开发一个评级应用程序。我不使用任何状态管理库。我希望每个用户都能够对一个项目进行评论。但我的问题是用户可以多次评论同一个项目,我希望他只能做一次。有人能帮我吗 ?这就是方法的样子:
flutter - Flutter 基础状态管理
我正在通过构建应用程序来学习颤振。我已经实现BLoC pattern
了调用 rest api 并向小部件提供数据。但是根据我的理解,这是需要它的视图的一些数据。我想Settings
在大多数小部件上都有按钮,我可以在其中显示当前登录的用户信息,能够更改他的语言、主题、一些特定的选定数据等。基本上是应用程序的基本状态。是BLoC pattern
那种方法吗?或者有更好的方法吗?
如果是,有什么方法可以做到这一点。如何处理多个StreamBuilder
,例如一个用于从 api 接收数据,一个用于更新状态?
我知道我可以用单例类做虚拟并使用注册它get-it plugin
,但如果有更好的方法我会跳过这个。
flutter - 颤振块。直接在 BlocBuilder 中使用时自动处理 cubit/bloc
如果我直接调用它,下面的代码是否会自动处理直接调用的实例(在本例中为cubit)。
我想知道是否BlocBuilder
会直接处理这个问题。我不需要BlocProvider
在这个 cubit/bloc 中使用,也不想StatefulWidget
只用于调用dispose
方法。
我曾尝试阅读 flutter_bloc 代码实现及其网络文档,但我很难找到答案(或者可能只是错过了答案)。
希望有人能启发我。
flutter - 当我在 Flutter 中使用提供程序包将数据从 API 加载到列表中时,它会重复调用 API,我该如何解决?
我正在尝试从检索地图的 api 调用中获取数据,我能够从 api 获取地图以显示我想要的方式,但是它反复调用 api 意味着列表不断刷新。即使我尝试将侦听器设置为 false,它也可以工作,但我必须手动刷新应用程序才能工作?
附加信息:分配和检索数据
附加信息:列表生成器:
如果需要任何其他信息,请告诉我。任何帮助将不胜感激。
谢谢
flutter - 使用 Flutter,如何拖动一个小部件并以另一种方式移动另一个小部件
我正在寻找一种在页面上移动块的方法,并且,如果我与另一个块重叠,第二个应该以另一种方式移动。
在我的示例中,我有一个游戏板(6*6 块)并在一些偏移量上用一些块(块)初始化它。
我认为将所有部分都作为独立的可拖动小部件并将游戏板作为控制器来管理游戏状态应该是一个好主意。
所以,当我拖动一个块时,它会调用一个游戏板函数来检查是否有一个侧块并将其移动到另一个方向。
但无论我尝试什么,它都不起作用,因为由于手势管理,每个块都有自己的 setState(),如果我在 GameBoard 上运行 setState(),正在进行的手势被杀死,因为所有块都被重绘...
有没有好的方法来实现这一点?
谢谢 !
我的片段(使用外部库“package:align_positioned/align_positioned.dart”):
flutter - Riverpods with hooks Flutter - 使用 Provider
有人可以举一个最好使用riverpod_hooks在Riverpods中进行额外状态修改的示例 - 我希望能够在不制作额外小部件的情况下使用它,例如:
我在理解 Riverpods 文档中关于在实施后使用提供程序方面有点困难。我了解增量部分 .state++,但我找不到初始化后更改状态值的明确示例。如 x 初始化为零,但您只想将其设为 42 或输入值。
例如,我有一个 Gender {male, female, non-binary} 的枚举,并且我创建了一个 GenderProvider,但我无法找出能够使用按钮在我的应用程序中更改性别的最佳方法。我也不完全确定 Provider 和 RiverPods 有多少相似之处,似乎有很多语义差异?
这就是当前在我的代码中声明提供程序的方式:
在此先感谢,我很感激任何建议。
flutter - 如何在 Flutter 的 BottomNavigationBar 项中使用 setState()?
我想在 BottomNavigationBar 项目中使用 DropdownButton。但无法使用 setState()。我看到了这个错误:- 无法在初始化程序中访问实例成员“setState”。尝试用不同的表达式替换对实例成员的引用dart(implicit_this_reference_in_initializer)
还有这个错误:- 无法在初始化程序中访问实例成员“numDropdownVal”。尝试用不同的表达式替换对实例成员的引用dart(implicit_this_reference_in_initializer)
这是完整的代码:
flutter - StateNotifierProvider 在应用程序重新启动之间不保持状态
使用flutter_riverpod: ^0.12.4并在 android 模拟器以及物理设备上进行测试。
重新启动应用程序后,登录屏幕state
值不会保留在 StateNotifierProvider 中,我做错了什么?
accountSetupProvider 的state
默认设置为介绍屏幕。单击介绍屏幕的 onPressed 按钮后,将state
更新为登录屏幕,并正确触发重建以显示登录屏幕。
但是,在颤振热重启或打开/关闭应用程序后,会显示介绍屏幕,而不是登录屏幕。在 Intro Screen 中单击 onPressed 后,现在设置为 Sign In 屏幕的不应该state
在重新启动之间持续存在并导致 Intro Screen 被跳过并显示 Sign In 屏幕吗?
正如您在下面看到的,main.dart
有一个初始 AppRoutes。根路由。在app_router.dart
,这个“根”屏幕打开root_screen.dart
,它是ConsumerWidget
我watch
的 StateNotifierProvider,在 中称为“accountSetupProvider” account_setup_provider.dart
。
主要.dart
app_router.dart
root_screen.dart
intro_screen.dart(仅包括onPressed
介绍屏幕的一部分,我希望将状态设置为新屏幕,即使在颤振热重启或应用重启后也是如此。)
account_setup_provider.dart(初始化到AppRoutes.intro
屏幕。)
android - Flutter 如何根据流事件自动弹出页面?
当音频流停止时,我想弹出一个音乐播放器页面。但我收到了类似的错误
这是我在返回脚手架之前放在 build 方法中的代码。
flutter - Flutter 从相关的小部件类更改状态
让我们假设一个类“SpecialButton”及其状态类“SpecialButtonState”
在父小部件中,我管理其中的几个按钮。因此,我想为他们分配一个状态。我尝试的解决方案是在 SpecialButton 类中引入一个“活动”标志,我可以轻松地从父小部件将其设置为 true 或 false。然后我可以在状态类的构建函数中使用它来为按钮着色。不幸的是,这并不能完全起作用,因为它不会立即更新按钮(它需要某种状态更新,例如通过将鼠标悬停在元素上)。
我的第二个想法是将这个标志作为 SpecialButtonState 类的属性状态引入
据我了解,这将是使用颤振的正确方法,但似乎我无法从 SpecialButton 类或包含小部件的父类访问“激活”或“停用”功能。
所以我的问题是:我如何(直接或间接通过函数)从相应的 StatefulWidget 类或包含它的父 Widget 修改状态?
在 Stack Overflow 上已经有一些类似的问题,我可以在其中找到使用或不使用全局键的提示,我发现这种行为具有误导性。此外,由于颤振的快速持续发展,它们可能已经过时,所以我再次就这个确切的用例提出这个(类似的)问题。
编辑:我忘了提到在创建后更改此标志至关重要,因此它将在其生存期间多次更改。这需要小部件重绘。