首页 > 解决方案 > Flutter 两个关于 setState() 的代码的区别

问题描述

这些代码是否同样有效?据我了解, setState() 通知框架该对象的内部状态已更改,因此我们是否在其中传递参数并不重要。

    Future<void> _incrementCounter() async {
        setState(() {
           _counter++;
        });
    Directory directory = await getApplicationDocumentsDirectory();
    final String dirName = directory.path;
    await File('$dir/counter.txt').writeAsString('$_counter');
   }
   _______________________________________________________________
   Future<void> _incrementCounter() async {
        _counter++;
        setState(() {          
        });
    Directory directory = await getApplicationDocumentsDirectory();
    final String dirName = directory.path;
    await File('$dir/counter.txt').writeAsString('$_counter');
   }

标签: flutter

解决方案


是的,无论你_counter++在里面setState()还是在它之前写,它都会做同样的事情。

  setState(() {
     _counter++;
  });

像上面这样写只会让代码更容易理解。因为任何正在查看我们在setState()此处调用的代码以反映_counter++UI 中的更改的人都很清楚。


推荐阅读