[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: setState() or markNeedsBuild() called during build - 解决方法
这个错误通常发生在 Flutter 的 build 方法或回调中调用 setState() 或 markNeedsBuild() 方法。这是不允许的,因为 Flutter 框架正在构建 widget 树,如果在这个过程中又触发重新构建,就会导致异常。
要解决这个问题,可以使用 Future.delayed() 方法来延迟调用 setState() 或 markNeedsBuild(),以确保在构建结束后再执行。例如:
Future.delayed(Duration.zero, () {
// 调用 setState() 或 markNeedsBuild() 方法
});
这里将延迟 0 秒,这意味着在当前帧结束后立即执行延迟的任务。如果需要延迟更长的时间,可以设置 Duration 的值。这样就可以避免在构建期间触发 setState() 或 markNeedsBuild() 方法导致的异常。
原文地址: https://www.cveoy.top/t/topic/lImu 著作权归作者所有。请勿转载和采集!