【问题标题】:How to determine if a Widget is Stateful or Stateless in Flutter?Flutter中如何判断一个Widget是有状态的还是无状态的?
【发布时间】:2021-12-08 08:54:44
【问题描述】:

我了解这里的基础知识。如果我的数据要更改,它应该是有状态的,因此我可以更新它,否则无状态。

我的问题更倾向于底部导航场景。所以,我的底部导航器中有 3 个标签 (个人资料、主页、设置)。入口点是 Home,它是一个有状态的 Widget。

另外两个Widget我基本上想用api数据填充其中的信息。

问题 如果我在主屏幕中并单击底部导航器中的配置文件图标,它不会从 api 加载信息。即使是这样,如果我单击主屏幕并再次单击配置文件屏幕返回,信息不会刷新。

解决方案 那么处理这个问题的方法是什么?我希望,如果我单击每个底部导航项,信息将使用 api 数据刷新。这是因为小部件是有状态的还是无状态的,还是我遗漏了其他东西?

【问题讨论】:

    标签: flutter dart mobile flutter-navigation


    【解决方案1】:

    默认情况下,底部导航栏中的页面在被点击时会刷新/重建。 确保您的应用中有几件事-

    1. 您没有为这些页面使用“索引堆栈”或任何类似的小部件。这些小部件会保留您页面的状态
    2. 导航是自行进行的。您还没有为导航栏中的点击定义任何 Navigator.Push 等。
    3. 您应该在该特定页面的 initState 方法中调用 API。就像如果您需要配置文件详细信息,请在配置文件选项卡的 initState 方法中调用配置文件信息的 api,而不是具有导航栏的“脚手架”页面。

    【讨论】:

    • 这很有趣。因此,请向我解释或让我参考一些文档。我确实有一个索引堆栈,因为这是我在所有教程中看到的唯一方法。其他方式意味着“未编入索引”是什么?另外,您能否进一步解释一下您的第 2 点。
    • 用一个简单的列表替换索引栈。
    • 第 2 点我的意思是通过使用底部导航栏和选项卡,您不需要任何导航器方法。我知道这很明显,但只是在确定。
    猜你喜欢
    • 2012-06-19
    • 2023-04-09
    • 1970-01-01
    • 2020-08-14
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 2022-08-11
    • 1970-01-01
    相关资源
    最近更新 更多