추가 기능
182
작성한 질문수 6
완강 후에 혼자 추가 기능을 구현해보고 있는데 질문 드려도 될까요?!
하트를 클릭하고 재클릭했을 때, favorites에서 해당 이미지를 제외시키는 기능을 구현하려고 합니다.(하트 누를 때마다 추가되었다가 삭제되었다가 ..)
그래서 저는 handleHeartClick()에 if(alreadyFavorite)의 경우를 추가해서 favorites 목록에서 해당 이미지를 제외하고, 로컬스토리지에서도 데이터를 삭제하려고 했습니다.
그런데 실행시켜보니 favorites 목록에서는 지워졌는데 로컬스토리지 데이터는 삭제가 안됩니다ㅠ 어떻게 구현해야 할지 모르겠어서 질문 드립니다..!!
밑에는 제가 짠 코드입니다.
function handleHeartClick() {
if (alreadyFavorite) {
const nextFavorites = favorites.filter(favorite => favorite != mainCat);
setFavorites(nextFavorites);
jsonLocalStorage.removeItem(mainCat);
return;
}
const nextFavorites = [...favorites, mainCat];
setFavorites(nextFavorites);
jsonLocalStorage.setItem('favorites', nextFavorites)
};
답변 1
2
jsonLocalStorage.removeItem(mainCat);
은 로컬스토리지에서 mainCat 키값을 찾아 해당하는 value를 지우는 코드입니다.
예를 들어 mainCat변수가 "1.png" 라면 로컬스토리지에서 키가 "1.png"인 값을 찾아서 지우는거죠.
우리는 고양이 이미지를 'favorites'라는 키값에 value를 배열로 저장했었어요.
동일하게 setItem을 해주면 됩니다. nextFavorites 계산은 완벽해요~ ㅎㅎ (!= 연산만 !== 로 비교하면 더 좋겠네요. 동일 타입의 비교니까요)
const nextFavorites = favorites.filter(favorite => favorite !== mainCat);
setFavorites(nextFavorites);
jsonLocalStorage.setItem('favorites', nextFavorites)
API 적용 안되는 코드 수정 방법입니다.
0
85
1
고양이 이미지가 엑박이 뜨네요
0
65
1
npx 명령어 사용 불가
1
86
1
const 변수와 컴포넌트의 차이
0
94
1
강의노트
0
146
1
vite로 리액트 빌드한 후 깃허브에 배포하는 방법
0
340
1
빌드할때 dist 폴더가 만들어지는데요,
0
798
1
js파일 업로드 요청
0
139
1
변경된 api 사용시 text 안나오는 문제
0
151
1
메인글자수정...
1
283
3
디렉터리 구조 관련하여 참고할 만한 예시가 있을까요?
1
315
1
https://cataas.com/undefined 로 나오는데 왜그런건가요?
1
609
4
고양이 사진이 깨져요.ㅜㅜ
2
363
3
강의 노트 위치를 모르겠습니다
1
347
1
깃 강의노트 어디서 볼 수 있나요?
1
382
2
이해가 안되는 부분이 있어요
1
366
1
api가 안불러와지네요...
1
671
4
진유림 선생님 너무 궁금해서 질문드립니다 ㅜ
1
338
2
react에서 컴포넌트 만들 때 대문자를 쓰는 이유
2
1162
2
https://cataas.com/ 여기 도메인이 죽어서 이미지가 보이지 않습니다 ㅠ
1
336
2
index.js 내용이 바꼈네용
1
321
2
프로젝트에 사용할 상태와 로직 관리 라이브러리 훅 사용 질문입니다.
1
263
2
html 코드 오류
1
465
2
고양이 이미지 깨져요
1
343
2





