这个错误通常发生在 Flutter 的 build 方法或回调中调用 setState()markNeedsBuild() 方法。这是不允许的,因为 Flutter 框架正在构建 widget 树,如果在这个过程中又触发重新构建,就会导致异常。

要解决这个问题,可以使用 Future.delayed() 方法来延迟调用 setState()markNeedsBuild(),以确保在构建结束后再执行。例如:

Future.delayed(Duration.zero, () {
  // 调用 setState() 或 markNeedsBuild() 方法
});

这里将延迟 0 秒,这意味着在当前帧结束后立即执行延迟的任务。如果需要延迟更长的时间,可以设置 Duration 的值。这样就可以避免在构建期间触发 setState()markNeedsBuild() 方法导致的异常。

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: setState() or markNeedsBuild() called during build - 解决方法

原文地址: https://www.cveoy.top/t/topic/lImu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录