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

코딩하는곰돌이님의 프로필 이미지
코딩하는곰돌이

작성한 질문수

처음 만난 리액트(React)

(실습) App.js 파일 수정, 애플리케이션 실행하기, Production 빌드하기

미니블로그 프로젝트 빌드시 오류

작성

·

484

0

안녕하세요 마지막 프로젝트 진행시 오류때문에 질문남겨드립니다.

 

스크린샷 2023-12-08 오전 10.46.46.png

이러한 오류가 생기는데 해결방법을 잘 모르겟습니다 ㅠㅠ

답변 1

0

Inje Lee (소플)님의 프로필 이미지
Inje Lee (소플)
지식공유자

안녕하세요, 소플입니다.

혹시 react-router-dom은 정상적으로 설치하셨나요?

아래 명령어를 다시 한 번 실행한 이후에 실행해보시기 바랍니다.

npm install react-router-dom

 

그래도 해결되지 않는다면 전체 소스 코드를 봐야 제대로 원인을 파악할 수 있을 것 같네요.

GitHub에 소스 코드를 올리고 저에게 링크를 공유해주시면 도움을 드릴 수 있을 것 같습니다.

 

감사합니다.

네 라우터문제인거같아서 재설정을 해줫는데도 계속 오류가 나네요 ㅠㅠ

https://github.com/Gomdollee/React_mini_blog
깃허브 주소입니다!

Inje Lee (소플)님의 프로필 이미지
Inje Lee (소플)
지식공유자

아무래도 패키지 설치과정에서 뭔가 꼬인 것 같네요~

node_modules 디렉터리와 package-lock.json 파일을 모두 삭제한 이후에,

아래 명령어로 강제로 패키지 설치를 진행한 이후에 다시 실행해보시기 바랍니다.

npm install --force

 

그리고 현재 코드 기준으로 PostViewPage에서 에러가 발생하는데,

원인은 매칭되는 post를 찾을 수 없기 때문입니다.

아래 find() 함수의 조건문에서 ===를 사용할 경우에는,

타입까지 동일해야 true로 판정이 되는데 item.id는 number 타입이고 postId는 string 타입입니다.

const post = data.find((item) => {
    return item.id === postId;
});

 

그래서 아래와 같이 postId를 number 타입으로 변환해서 비교하거나,

=== 대신 ==를 사용하여 값만 비교하는 형태 중에서 선택해서 사용하시면 됩니다.

// 타입을 변환하는 형태
const post = data.find((item) => {
    return item.id === Number(postId);
});

// 값만 비교하는 형태
const post = data.find((item) => {
    return item.id == postId;
});

 

시도해보시고 계속해서 문제가 발생하면 말씀해주시기 바랍니다.

감사합니다.

해결됐습니다 감사합니다 강사님!

 

코딩하는곰돌이님의 프로필 이미지
코딩하는곰돌이

작성한 질문수

질문하기