如何在Flutter App中的选项卡之间管理状态

问题描述 投票:1回答:2

我在我的应用程序中使用TabBar,我需要在第一个选项卡中显示输入并显示 输出基于其他选项卡上的某些计算。

我可以在第一个标签中输入,但是当我点击第二个标签时,我的状态就丢失了。我不确定是否必须在根级别将其设置为Stateful小部件。

我在移动应用程序方面相对较新。有人可以帮帮我吗?

编辑:

现在我能够实现上面所说的,但是当我尝试从第一个选项卡访问项目列表时,它会在第二个选项卡中抛出null异常?

我使用AutomaticKeepAliveClientMixin解决了上述问题,如下面的答案所述。

dart flutter hybrid-mobile-app progressive-web-apps
2个回答
4
投票

我想你可能会追求的是AutomaticKeepAliveClientMixin。我总是将它添加到TabBarView中的屏幕小部件中。这样,当用户将数据输入到一个选项卡中的字段并导航到其他选项卡并返回时,数据仍然如您所料。然后,当用户执行类似“保存”的操作时,我处理状态管理(BLoC等)。


0
投票

您可能希望使用体系结构来管理和共享状态。管理状态有很多方法:

  1. InheritedWidget将app状态传递给widget层次结构
  2. 用于保存应用状态并通知更新小部件的范围模型库
  3. Redux库管理应用程序状态和更新小部件
  4. 业务逻辑组件(BLoC)

看看这个article。使用不同的架构示例检查this GitHub repository

© www.soinside.com 2019 - 2024. All rights reserved.