• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

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

23.12.11 01:14 작성 조회수 96

0

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

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

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

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

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.12.13

안녕하세요, 인프런 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 전략이 중요하므로 이에 대해 더 자세히 알아보시는 것도 좋을 것 같습니다.