【问题标题】:What's the difference between the two `SetState()` usages?两种 `SetState()` 用法有什么区别?
【发布时间】:2022-12-04 22:43:17
【问题描述】:

只是想知道之间是否有任何区别:

      // == Add all picked idoes to the mix table
      setState(() {
        Future.forEach(result, (asset) async {
          final video = await MixTableVideo.create(original: asset);
          videos.add(video);
        });
      });

和:

      // == Add all picked idoes to the mix table

      Future.forEach(result, (asset) async {
          final video = await MixTableVideo.create(original: asset);
          videos.add(video);
        });

      setState(() {});

【问题讨论】:

    标签: flutter dart state


    【解决方案1】:

    在第一个代码 sn-p 中,setState 函数通过运行 Future.forEach 函数的回调函数被调用,它迭代结果列表中的元素并使用 MixTableVideo.create 函数将每个元素添加到视频列表.

    在第二个代码 sn-p 中,Future.forEach 函数在 setState 回调之外运行。这意味着视频列表将在调用 setState 函数之前更新,但 UI 将在调用 setState 之后才会更新。

    【讨论】:

      【解决方案2】:

      在我们可以使用状态之前,我们需要为初始状态声明一组默认值。这可以通过在构造函数中或直接在类中创建状态对象来完成。

      【讨论】:

        猜你喜欢
        • 2014-07-16
        • 2013-09-08
        • 2019-03-31
        • 2020-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多