问题标签 [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 投票
3 回答
56 浏览

flutter - 如何在子类中实现手势检测 - On Tap 方法?

我想在子类中实现该GestureDetector方法。onTap有没有办法在 Flutter 中做到这一点?

ParentClass.dart

ChildClass.dart

0 投票
1 回答
195 浏览

flutter - 如何在 Flutter 中获取有关提供者上下文更改的网络数据

我有一个带有一些奇怪功能的 Flutter 应用程序,但它是必需的。该应用程序的 BottomNavigationBar 页面包含在 IndexedStack 中,因此如果您转到此 IndexedStack 的其他页面,页面不会重新加载并保持持久性。

其中一个页面是 ProfilePage,您可以在其中选择用户列表。我使用如下所示的 ChangeNotifier:

其他 BottomNavigationBar 页面之一 TheOtherPage 取决于所选用户 (_chosenUser),在 initState 上它从网络加载数据:

问题是字段 _chosenUser 更改后,我需要 TheOtherPage 从网络加载所选用户的数据。但我不知道如何处理它。如果我使用 context.read 或 context.select 它肯定会跟踪更改的 _chosenUser,但不会获取新选择的数据:

而且我不想在 UserInfo 对象中保存 TheOtherPage 所需的数据,因为数据太多,并且为 MainUserInfo._users 中的每个用户加载这么多数据不是一种选择。此外,我将能够跟踪加载状态,因为使用“bool Isloading”我可以在获取所需数据时显示一些花哨的占位符。

所以一般的问题是如何使 TheOtherPage 获取 ProfilePage 上 ChangeNotifier 更改字段的数据。也许我的整个方法很糟糕,我不需要在这里使用 Provider 和 ChangeNotifier,我想看看任何建议。谢谢

0 投票
1 回答
127 浏览

flutter - 您应该将状态值放在 Riverpod 的什么位置?

要访问 StateProvider 或 StateNotifierProvider 的状态:

有时在 Riverpod 文档中,在 watch 函数之后添加了 state 变量。

但是,我使用 StateNotifier 的代码只有在我在 watch 中引用它时才有效。IE

有什么区别?

0 投票
5 回答
2670 浏览

flutter - 从有状态小部件更新无状态小部件

主要飞镖:

主页.dart:

HomeView.dart:

当我从 floatingActionButton 调用 updateDisplay() 方法时,它按预期工作,数据被打印到控制台,但是它似乎没有更新实际的 UI,卡片的内容,它们只是保持在初始设置值.

澄清一下:如何从有状态小部件更新列表视图内(无状态小部件内)的卡片内容?

如果这是一个重复的问题,我很抱歉,我已经查看并继续寻找问题的答案,但我根本无法让它工作。

0 投票
1 回答
297 浏览

flutter - Flutter Widget 在其中一项属性更改后重建

如何在属性值之一更改后立即强制 Widget 重建?一些伪代码:

String name 属性更新时(基于父级的 setState 调用),一切都是实时发生的。更改会立即反映在 Text 小部件中。这个值是立即可见的,因为我正在使用widget.name调用,所以在built()方法中我使用的是Live类中的属性而不是状态。

问题是另一个包裹在 Card 中的小部件在标记为// some turbo logic I don't want to move to Live class. 由于这个事实,当我想在本节中查看更新时,我需要切换选项卡并转到例如设置,然后返回实时选项卡以查看与卡片内容相关的更改。我相信它会再次触发 build() 方法。

戈拉斯:

  • nameLive 小部件中更新值后,状态小部件会立即重建。
  • 不要移动turbo logic到 Live 类并将其保留在 State 类中
0 投票
2 回答
440 浏览

flutter - 尝试为我的状态使用带有嵌套底部导航栏的提供程序时出现问题-Flutter

我正在尝试与提供者一起学习正确的状态管理,但我遇到了一个问题,我在这里遇到了麻烦。据我所知,我正在按照三个单独的提供者教程中的说明做所有事情。我也成功地将它用于我的数据表,没有任何问题。但是,当我尝试在小部件树上为我的 BottomNavigationBar 和我的 appBar 使用提供程序时,我不断收到错误消息和失败。

我想让我的底部导航栏与我的“零屏幕”状态分开。因此,我根据索引设置了一个带有底部导航栏按钮按下的 int,这应该更新我的 GlobalData pageSelection 索引。然后我为三元运算符在树上访问它。但我收到一个奇怪的错误,说它不在小部件树中......

我尝试做错误建议所述的事情,但没有运气。

任何帮助表示赞赏!

底部导航栏

零屏幕:

错误:

0 投票
0 回答
19 浏览

flutter - 订阅提供者状态并更新文本控制器

我想知道是否有任何方法可以订阅 didUpdate 或 initState 中的状态值。我基本上推送一个可以更改原始页面中的值的页面......当这种情况发生时,textController 需要使用新的状态值更新文本表单字段

目前我只是在 afterFirstLayout 期间初始化基于文本控制器,但是因为这永远不会再次触发,所以原始值仍然存在。

这可以做到吗?

0 投票
0 回答
39 浏览

flutter - 带有颤振块包丢失滚动位置的分页

在使用flutter_bloc 6.0时,我遇到了一个问题,我用bloc builder包装了脚手架,当新状态时,它的值将被附加到定义的空列表中。很好地附加了新的状态值,但 UI 全部重建并丢失了滚动位置,它转到了初始偏移位置。我该如何正确解决这个问题。

0 投票
0 回答
163 浏览

flutter - 未处理的异常:在构造函数中调用了 setState():

我知道有很多类似的问题,但没有一个对我有帮助,这就是我发布这个问题的原因,所以请多多包涵。

我的屏幕是:

随着_DashboardState().updateUI(Account().returnedData())我返回一个“未来”的实例,我在 updateUI 中将其转向 ListView。

如果我在 updateUI 中打印 temp 我得到:

ListView(scrollDirection:垂直,主要:使用主控制器,AlwaysScrollableScrollPhysics,shrinkWrap:收缩包装)

所以我想这到目前为止有效。

问题是当我在 updateUI 中调用 setState() 时,出现错误

类似的代码在另一个项目中完美运行,所以它让我发疯。

0 投票
3 回答
328 浏览

flutter - 从另一个活动获取弹出堆栈后,第一个活动的 initState() 方法未初始化

我正在使用 3 个屏幕的颤振应用程序。

MainActivity开到ActivityClass1并且ActivityClass1将开ActivityClass2。现在,当我Navigator.pop(context),从 ActivityClass2 中获取时,它将显示堆栈中的 ActivityClass1。但这一次我需要采取行动initState()ActivityClass1因为我需要在ActivityClass1.

有什么方法可以调用它也维护我的堆栈initState()- >吗?我也尝试过 for而不是使用on但这会清除我的堆栈。ActivityClass1MainActivityActivityClass1Navigator.of(context).pushAndRemoveUntil(Navigator.pop(context),ActivityClass2