개인 과제 마무리
리덕스 공식문서 읽기
https://immerjs.github.io/immer/
이미지는 수정이 될 수도 있고 수정이 안될 수도 있다고.
이미지를 수정한다는 건 결국에는 이미지를 새로 올린다는 것.
그렇다면 이미지를 업로드를 했다 안했다를 어떻게 체크해야 할까?
현재 수정으로 들어와 게시글 작성을 누르면 수정이 안되고 새로 만들어진다. 그리하여 여러 프로세스를 거쳐가야 한다.
이미지를 새로 업로드를 한 경우, 인풋에 파일이 들어가 있다가
파일리더로 읽어서 preview에다 넣어줬었다는 걸 생각하여 (data_url)
그런데 만약 사용자가 파일을 업로드 안했으면 포스트 하나에 들어가 있던
그 이미지 링크가 들어가 있음.
그렇다면 우리는 하나의 링크, 포스트에 이미 있었던 그 링크 그리고
preview에 저장되어있는 값과 비교 해야 함. 같으면 새로 이미지 업로드
안한 것이고, 다르면 이미 preview에 업로드를 한 것임.
...
if (_image === _post.image_url) {
postDB
.doc(post_id)
.update(post)
.then((doc) => {
dispatch(editPost(post_id, { ...post }));
history.replace('/');
});
}
윗 부분은 파이어베이스 doc을 쓴 것이고 .then부터는 리덕스의 dispatch 사용. 구분을 잘 해두자.