【问题标题】:Flutter setState from a different Screen从不同的屏幕颤振 setState
【发布时间】:2021-06-27 11:56:04
【问题描述】:

活动1

static String mValue = "0";

change(){
  setState((){
    Activity1.mValue = "1";
 });
}

活动2

Text(Activity1.mValue)

这是我的代码的最简单形式。我想更改 Activity1 中存在的静态值,并且该更改应反映在 Activity2 中

到目前为止的工作原理

// Activity2
setState((){
  Activity1.mValue = "1";
})
Text(Activity1.mValue);

我想要实现的是更改 Activity1 的值并将其反映在 Activity2 中。它们是 2 个不同的类,不是 Root 和 Child。无论如何要做到这一点?

【问题讨论】:

    标签: android ios flutter dart setstate


    【解决方案1】:

    在 Flutter 中,我们不会直接从另一个小部件更改一个小部件的状态,因为 Flutter 是一个声明性框架。

    查看 Flutter 文档中的 state management 方法部分,尤其是 Lifting state up 部分。

    主要思想是您在Activity1Activity2 上方的小部件中提升您的状态,在那里更改它(例如使用回调),然后将状态传播到树下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-19
      • 2021-07-12
      • 2023-01-11
      • 2020-10-10
      • 2019-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多