오늘의 결론
오늘 배운 것
3-2강
3-3강
-> get PostFB가서 콘솔 확인-> initialState와 firebase에 데이터 유형확인 -> 유형 맞춰주고 -> 리덕스로 넣기위해서 다시 dispatch(setPost)할꺼니까 setPost에 들어갈 post_list는 배열이다. 빈배열을 만들어서 push해주자.) 그리고 dispatch(setPost)되면 reducer (handleActions로 갈꺼니까)에서 return을 써주면된다.유형 맞춰줄 때 좀더 고수답게 reduce사용한다한다 reduce내장함수 알아보기
reduce는 ㄹㅇ 너무어렵다.
3-4강
3-5강
데이터들을 변수에 넣어준다.( user_info, _post) 이때 user_info는 user.js에서 데이터 받아오기로 했으니까 getState().user.user 로 가져온다. 리덕스에서 데이터 받아오는거다.
그리고 이제 firebase에 추가해줘야하니까 일단 firestore.collection으로 firebase부터 불러온다.
불러온거에다가 .add로 데이터들 변수 해준고 넣어주고 then해주기.
PostDB.add({데이터들}).then((doc) =>{ }).catch((err) => {console.log("에러")})
then 다음에 들어가는 doc는 내가 add해준 데이터들 이라고 보면된다. catch는 보고 따라써라 오류잡는거다. 근데 add해주기전에 콘솔로찍어보자. 콘솔찍고 return쳐주면 아래 부분은 실행안되고 콘솔까지만 실행되니까.
콘솔 찍히는거 확인했으면 콘솔 return지워주고 그대로 다시 firebase에 들어가는지 확인
이제 리덕스에다가 추가할꺼다
핵심은 리덕스와 파이어베이스 데이터 유형이 똑같아야한다. 리덕스 유형은 Post에서 따왔다
3-6,7강 (여기서부터 git hub올려야함)
3-8강
const SET_PREVIEW = "SET_PREVIEW" //액션
const setPreview = creatAction( SET_PREVIEW, (preview) => {preview})
export default handleCreation({
[SET_PREVIEW] : (state,action) => preduce(state, (draft) => {
draft.preview = draft.payload.preview
})
},initialState)
actioncreator = {
setPreview
}
export {actioncreator}
const preview = useSelector ((state) => state.image.preview)
const dispatch = useDispatch()
src로 넘겨줄때 scr={preview ? preview :"null일때 이미지"} 처리까지해준다.
3-9강
3-10강
이벤트 과부하 처리 하는 법
3-11강
Lodash 공식문서 읽어보자, 학습자료 참고
Dbounce와 Throttle를 재 렌더링되도 사용할 수 있게 React.useCallback을 사용
(리렌더링 되도 함수초기화 하지말라는 것)
최적화할때 매우 중요하니 다시 한번 알아보자
3주차 숙제