인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

kcontrol님의 프로필 이미지
kcontrol

작성한 질문수

Flutter + Firebase로 넷플릭스 UI 클론 코딩하기 [무작정 플러터]

플러터와 파이어베이스 연동하기 - 2) 플러터 코드 작성하기

home screen에 찜하기가 바로 업데이트가 안되는 현상

작성

·

183

0

detail screen에서 찜하기(like)를 누르고

home screen으로 오면 상단에 바로 반영이 되야 하는데

다른 탭에 갔다 와야지만 변경이 됩니다.

어딘가 setstate를 해줘야 될거같은데 모르겠네요.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
kcontrol님, Flutter에서 detail screen에서의 변경 사항이 home screen에 바로 반영되지 않는 문제는 일반적으로 state 관리의 문제입니다.

StatefulWidget의 setState() 메소드를 활용해서 상태 변경을 감지하고 화면을 갱신할 수 있으나, 두 화면 간에 상태를 전달하고 반영하는 경우에는 이 방법만으로는 충분하지 않을 수 있습니다. Provider, Bloc, Redux 등 state management 패키지를 활용하시거나, Navigator.pop을 사용할 때 값을 전달하는 방식을 고려해서 상태를 관리할 수도 있습니다.

detail screen에서 찜하기를 한 후에 Navigator.pop을 통해 home screen으로 돌아갈 때 변경 사항을 home screen에 전달하고, 이 변경 사항을 받아서 setState를 호출해 화면을 갱신하는 로직을 추가해보세요.

예시:

// detail screen에서
Navigator.pop(context, likeChanged);

// home screen에서
bool result = await Navigator.push(...); // detail screen으로 이동
if (result != null && result) {
  setState(() {
    // 찜하기 상태 업데이트 로직
  });
}

state management 전략이 중요하므로 이에 대해 더 자세히 알아보시는 것도 좋을 것 같습니다.

kcontrol님의 프로필 이미지
kcontrol

작성한 질문수

질문하기