build

개발/Flutter

[Error] setState() or markNeedsBuild() called during build

문제점 위젯의 lifecycle이 build 중인 상태에서 setState를 호출해서 발생 내 경우엔 builder에서 setState를 호출해서 발생했다. 더 정확한 원인을 알아보기 위해 디버그 모드로 살펴봤다. setState 내부 코드를 들어가보면 많은 assert문을 지나 markNeedsBuild를 호출한다. markNeedsBuild 내부 중에선 _debugIsInScope함수에서 false가 반환되어 호출된 if문 아래의 _debugAllowIgnoredCallsToMarkNeedsBuild는 false로 되어있어 ! 연산자로 인해 true가 되어 해당 if문의 내부에서 최종적으로 에러가 발생한다. 이제 에러를 발생시키는 아래의 _debugIsInScope 코드를 보면서 에러가 발생하는 상..

leebera_
'build' 태그의 글 목록