Wednesday, July 22, 2020

Flutter에서 Provider와 showModalBottomSheet 사용 시 위젯 갱신 문제 해결 방법

Flutter에서 showModalBottomSheet 사용 시 위젯 갱신 문제 해결 방법

Flutter를 사용하여 앱을 개발하는 중에 showModalBottomSheet 함수를 활용하면서 위젯 갱신 문제에 직면했다면, 이 글이 도움이 될 수 있습니다. 특히, 상태 관리로 Provider를 사용하는 경우에 이 문제가 발생할 수 있습니다.

상황 설명: showModalBottomSheet에서의 위젯 갱신 문제

showModalBottomSheet 함수를 사용하여 슬라이딩 시트를 생성할 때, 생성된 위젯이 갱신되지 않는 문제가 발생할 수 있습니다. 이는 Stateful 위젯에서도 동일하게 발생하며, setState를 통한 변경이 반영되지 않는 문제입니다.

해결 방법: Provider와 StatefulBuilder 활용

이 문제의 해결 방법은 Provider를 활용하면서 StatefulBuilder를 사용하여 BottomSheet 위젯을 구성하는 것입니다. 이후 provider 값을 갱신하고, state(() {}); 를 호출하면 위젯이 올바르게 갱신됩니다.

Note: BottomSheet가 배경 context와 다른 context를 가진다는 것을 알아두세요. 이로 인해 위젯 갱신 문제가 발생할 수 있습니다.


0 개의 댓글:

Post a Comment