【问题标题】:Flutter - change variables inside or outside setState? [duplicate]Flutter - 在setState内部或外部更改变量? [复制]
【发布时间】:2019-07-05 08:35:24
【问题描述】:

在 Flutter Widget 中更改状态时,这样做有什么区别

_variable1 = true;
variable2 = 'abc';
setState(() => {});

或者这个

setState(() => {
    _variable1 = true;
    variable2 = 'abc';
});

文档中的几乎所有示例都使用最后一个,但我没有注意到任何实际差异。在这两种情况下都设置了变量并更新了状态,但我想知道如果使用一种或另一种情况,是否存在某种情况无法按预期工作。

【问题讨论】:

  • 这并没有什么区别,但第二个使意图更清楚。为了更新视图,_variable1band variable2 的状态已更改。

标签: flutter


【解决方案1】:

根据扑docs的说法是:

一般建议setState方法只用于 包装对状态的实际更改,而不是任何可能的计算 与更改相关联。

主要是我认为这是出于可读性的目的,即您需要将新构建的小部件中发生的变化放入setState 的主体中,而不是将其与您的计算混为一谈,作为您问题中的第一种方法可以。

【讨论】:

    【解决方案2】:

    已经发布here这个问题。

    这是一个约定,没关系,但是,将所有更改包装在 setState 函数中是很好的实践。但是两种情况下的结果都是一样的。

    【讨论】:

      【解决方案3】:

      我在某处读到空的 setState 是一种“代码味道”,因为回调的主体应该指出 setState 的原因。

      【讨论】:

        【解决方案4】:

        不,两种情况下的结果都是一样的,我在很多小部件中都可以互换使用它们,结果总是一样的。

        【讨论】:

          猜你喜欢
          • 2014-10-12
          • 2017-03-08
          • 1970-01-01
          • 1970-01-01
          • 2019-01-19
          • 1970-01-01
          • 2023-01-04
          • 1970-01-01
          • 2012-02-06
          相关资源
          最近更新 更多