前言
当我在initState函数中对Provider进行赋值时,此时会出现setState() or markNeedsBuild() called during build.的错误
解决办法
使用WidgetsBinding.instance.addPostFrameCallback来解决这个问题。
注意:不要使用addPersistentFrameCallback,每一帧绘制完成后都会执行addPersistentFrameCallback
addPostFrameCallback
确保在当前帧绘制完成后再执行赋值操作。这样可以避免在 build
过程中调用 setState
导致的错误。
WidgetsBinding.instance.addPostFrameCallback((_) {
// 进行赋值操作
});