Flutter 플러터/에러, 오류 Error 혹은 문제해결
setState() or markNeedsBuild() called during build.
찬스님
2022. 8. 19. 17:12
300x250
initState() 메서드에서 Provider read () 메서드를 호출하였다.
그러자
"setState() or markNeedsBuild() called during build." 에러를 뱉어냈다.
원인은
Widget LifeCycle 에 위배되기 때문이다. ( Widget Life Cycle 참조 )
build() 메서드는 Widget Tree 를 생성하는 역할을 하는데 해당 프로세스가 완료 되기 전에
Provider 내부 동작 중에 setState ( markNeedsBuild ) 혹은 메서드를 호출했기 때문이다.
( framework 에 그리라는 명령을 한 샘 )
해결책
1. WidgetsBinding 인스턴스의 addPostFrameCallback 등록하여 사용
2.
3.
( 2, 3번은 추후 업데이트 )
반응형