Flatlist의 렌더링이 실시간으로 되지 않습니다

아래는

해당 파트들입니다.
home.js에서 likePost버튼을 누를때마다 색깔이 변하는 코드를 짰는데,
flatlist에서 onRefresh하지않으면 render가 되지 않거나 느리게 됩니다.
개선 방법이 있을까요?

home.js 플랫리스트 부분

action의 get post

reducer의 post부분
image

두가지 옵션이 있을 거 같아요.

  1. firestore에서 get으로 가져오지 말고, onSnapshot을 써서 변경사항이 있을 경우에 바로 적용하도록 하는 방법
  2. likePost, unlikePost 액션에서 db에 써주기 전에 UI를 업데이트 해주는 것(이건 내가 누른 라이크 버튼이 즉시 반영되게 하는 것이죠)

와. 유레카.
정말 감사합니다.
덕분에 코딩하면서 생기는 에러사항들 질문올릴때마다 명쾌하게 해결되고있어요.
항상 감사하게 생각하고있습니다!

1 Like


단순하게 onSnapshot()로 변경하였는데
첨부같은 이미지가 발생하네요. 무엇을 수정하먄 될지요

onSnapshot()를 사용하는 방법을 먼저 익해보세요.
https://firebase.google.com/docs/firestore/query-data/listen