인프런 커뮤니티 질문&답변

ㅇㅋ님의 프로필 이미지
ㅇㅋ

작성한 질문수

[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

data에 값이 들어오지 않고, edit버튼을 누르면 게시글이 사라집니다.

해결된 질문

작성

·

163

0

안녕하세요, 마지막강의전에 발견된 문제 질문드립니다. 좋은강의 정말 감사합니다.

파이어베이스로 배포하면서 발견된 에러들이있는데 2시간가까이 삽질을 해도 원인을 찾기힘들어 질문 올립니다.

1.첫 로드시 로컬스토리지에 많은 데이터가 쌓여있음에도 리스트를 불러오지 못합니다.

로컬스토리지에는 데이터가 쌓여있지만 데브툴즈에는 아이템이 없다고 나와있었습니다. 

데이터를 내려주는 App부터 체크하고 콘솔에 데이터가 찍히는걸 확인하고  그 하위 컴포넌트인 Home 페이지를 갔는데 여기에서 데이터가 빈값으로 나왔습니다. 분명 setData로 diaryList를 필터한값을 상태변환 시켜주었는데 data에 그 값이 반영되지 않고 계속 빈배열로 나옵니다. 원인이 무엇일까요?

2. 새 일기 쓰기를하면 일기가 써지고 로컬스토리지에 저장도 잘되고 화면에 로드도 됩니다. 그런데 일기를 수정하기화면에서 재작성해서 수정을 하면 리스트에서 일기가 제거됩니다. 그러고 로컬스토리지를 보면 일기는 남아있고(수정된상태로) 데브툴즈에서는 일기아이템이 삭제됩니다. 

스스로 해결을 해보려했지만, 원인을 찾기힘들어 결국 질문 드립니다. 깃주소와 이미지를 남겨드립니다.

https://github.com/iamoki/emotion-diary

 

 

 

 

 

답변 1

0

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

안녕하세요 

이정환입니다.

 

우선 1번 질문에 대해서는 잘 이해가 되지 않습니다.

제가 확인해 본 바에 따르면 문제가 없는 것으로 보입니다.

다음 배포된 URL에 접근하여 확인 해 보아도 문제가 없습니다.

https://emotiondiary-clone-project.web.app/

 

로컬스토리지는 하나의 도메인에 하나의 저장소를 만듭니다.

따라서 도메인이 달라지면 데이터가 공유되지 않습니다,

이 점을 확인 해 보시기 바랍니다

ex) localhost:3000과 emotion-diary-clone-project는 다른 로컬스토리지를 사용합니다.

 

2번 질문은 다음 코드에 오타가 존재합니다

data가 아닌 date로 지정해서 넘겨주어야 합니다.

// EDIT
const onEdit = (targetId, date, content, emotion) => {
dispatch({
type: 'EDIT',
data: { id: targetId, data: new Date(date).getTime(), content, emotion },
});
};
ㅇㅋ님의 프로필 이미지
ㅇㅋ
질문자

1번은 다시확인을 해봐야겠네요, 답변 감사합니다:)

ㅇㅋ님의 프로필 이미지
ㅇㅋ

작성한 질문수

질문하기