데브허브 | DEVHUB | Understanding markNeedsRebuild and Solving the problemUnderstanding markNeedsRebuild and Solving the problem
set state or mark needs rebuild called during build 오류는 Flutter UI 빌드 단계에서 변수 값을 업데이트하려고 할 때 발생합니다. 🚫
- 이 오류는 주로 검색과 같은 UI 업데이트 작업 중
value notifier error 또는 빨간색 에러 화면으로 나타납니다. 🚨
- 근본적인 원인은 Flutter가 UI를 그리는 빌드 단계에서 변수 값을 변경하여 UI를 다시 그리도록 유도하는 것을 허용하지 않기 때문입니다. 🔄
- 트랜스크립트에서는
get displayed items 함수 내의 변수 업데이트가 빌드 단계에서 문제를 일으킨 구체적인 예시를 보여줍니다. 🔍
- 해결책은 빌드 단계에서 발생하는 변수 업데이트 작업을 현재 UI 프레임이 완료된 후로 '연기'하는 것입니다. ⏳
- 기술적인 해결 방법은
WidgetsBinding.instance.addPostFrameCallback을 사용하여 빌드 후 콜백으로 변수 업데이트 로직을 감싸는 것입니다. ✅
- 이 해결책을 적용하면 UI 빌드 중 발생하는 오류 없이 검색 기능이 정상적으로 작동합니다. ✨