【问题标题】:Flow analysis doesn't work when using setState使用 setState 时流分析不起作用
【发布时间】:2021-05-29 13:02:06
【问题描述】:
void f() {
  String string;
  setState(() {
    string = fooCondition ? 'foo' : 'bar';
  });
  
  string.toUpperCase(); // Error
}

如果我删除setState 条件,流分析工作!我可以将我的setState 放在下面(空白setState(() {}),但这只会降低代码的可读性。在不使string 可空并随后检查可空性的情况下,有没有更好的方法?

【问题讨论】:

    标签: flutter dart dart-null-safety


    【解决方案1】:

    这就是为什么您也可以在本地范围内使用 late 关键字的原因。

    late String string;
    

    回答你的问题:

    void f() {
      late String string;
      setState(() {
        string = fooCondition ? 'foo' : 'bar';
      });
    
      string.toUpperCase(); // Works
    }
    

    【讨论】:

      猜你喜欢
      • 2019-10-03
      • 2018-10-21
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      • 2020-07-31
      • 1970-01-01
      相关资源
      最近更新 更多