10.04 댓글 강의
복합쿼리
복합쿼리는 firestore에서 한 콜렉션의 여러 필드를 한 쿼리로 묶을 때 필요하다.
-> 여러 필드 내용을 가지고 쿼리를 쓰고 싶을 때 쓴다.
게시글에 아이디로 조건을 걸어 쿼리를 날린다.
작성한 일시 insert_dt로 정렬하기 위해 복합쿼리를 사용.
댓글
-
댓글 뷰 > 기능 > 댓글 텍스트를 리덕스에 삽입 > 파이어 스토어에 저장 > 리덕스에 데이터 업데이트
-
댓글 데이터 추가할 때 게시글 정보의 댓글 갯수 + 1을 해줘야 한다.
댓글 뷰 > 기능 > 댓글 텍스트를 리덕스에 삽입 > 파이어 스토어에 저장 > 리덕스에 데이터 업데이트
댓글 데이터 추가할 때 게시글 정보의 댓글 갯수 + 1을 해줘야 한다.
리덕스에 데이터를 저장하는 이유
다음번에 또 쓰기 위해
A - B - A 로 페이지를 이동할 때 매번 요청을 하는건 비효율적.
=> 각 게시글에 맞는 댓글 리스트를 저장할 공간을 만들어 저장한다.
댓글알림
파이어베이스의 실시간 데이터 베이스를 사용해서 데이터가 실시간으로 업데이트 되었음을 알려주는 리스너를 붙인다.
필요한 것은?
- 내가 작성한 게시글엔 내가 쓴 댓글은 알림이 가지 않아야 한다.
- 내가 아닌 사람이 댓글을 달면 파이어베이스에 저장해둔 { noti: {read:false} }의 false값이 true로 바뀌어야 한다.
Header, NotiBadge, firebase, comment,
키 프레스 이벤트
엔터키를 눌렀을 때에도 댓글 작성이 되게한다.
이런 이벤트를 키 프레스 이벤트라고 말한다.
onKeyPress 를 사용.
onKeyPress={(e) => {
if(e.key === "Enter"){
onSubmit(e);
}
}}
const 관련 에러
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는 선언, 할당, 초기화가 동시에 되어야 함을 상기시키자~!
오타도 조심하자 ㅎㅎ..
오늘의 TMI
- 역시 강한 사람이 끝까지 남는게 아니라 남은 사람이 강한 사람..
- 방향이 틀린 것은 아닌 것 같으니 고만 흔들리고 킵 고잉
~~ - 역시 삽질로 얻는게 훨씬 많다~
- 오타를 조심하자고 해놓고 또 오타로 시간을 버렸다. 하
~~~
Author And Source
이 문제에 관하여(10.04 댓글 강의), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@2_juzzang/10.04-댓글-강의저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)