복합쿼리는 firestore에서 한 콜렉션의 여러 필드를 한 쿼리로 묶을 때 필요하다.
-> 여러 필드 내용을 가지고 쿼리를 쓰고 싶을 때 쓴다.
게시글에 아이디로 조건을 걸어 쿼리를 날린다.
작성한 일시 insert_dt로 정렬하기 위해 복합쿼리를 사용.
댓글 뷰 > 기능 > 댓글 텍스트를 리덕스에 삽입 > 파이어 스토어에 저장 > 리덕스에 데이터 업데이트
댓글 데이터 추가할 때 게시글 정보의 댓글 갯수 + 1을 해줘야 한다.
리덕스에 데이터를 저장하는 이유
다음번에 또 쓰기 위해
A - B - A 로 페이지를 이동할 때 매번 요청을 하는건 비효율적.
=> 각 게시글에 맞는 댓글 리스트를 저장할 공간을 만들어 저장한다.
파이어베이스의 실시간 데이터 베이스를 사용해서 데이터가 실시간으로 업데이트 되었음을 알려주는 리스너를 붙인다.
필요한 것은?
엔터키를 눌렀을 때에도 댓글 작성이 되게한다.
이런 이벤트를 키 프레스 이벤트라고 말한다.
onKeyPress 를 사용.
onKeyPress={(e) => {
if(e.key === "Enter"){
onSubmit(e);
}
}}
Unhandled Rejection (ReferenceError): Cannot access 'post' before initialization
초기화 전에는 게시물에 액세스 할 수 없다.
const post = getState().post.list.find(l => l.id === post.id);
변수 post_id 를 post.id 로 오타를 내버려서 위의 에러가 발생했다.
const로 선언된 변수는 (=) 우측에 있는 것을 먼저 평가한 후 왼쪽의 변수에 담는데
우측의 내용을 평가할 때 존재하지 않는 변수(post)의 프로퍼티에 접근을 하려니 위의 에러 메세지가 뜬 것이었다.
const는 선언, 할당, 초기화가 동시에 되어야 함을 상기시키자~!
오타도 조심하자 ㅎㅎ..