emotion_img를 못받아오고 있어요
이번에 페이지 구현-일기 쓰기 (/new) 를 듣고 따라 적어보는 중에 잘 해결되지 않는 부분이 있어서 질문을 올립니다!
다른 기능은 정상적으로 작동하고 다른 컴포넌트에서도 img파일을 정확히 불러오는데 DiaryEditor.js 에서만 emotinItem으로
emotion_img를 전달하는데 이미지가 뜨지 않고 오류가 발생합니다

이런식으로 onClick is not a function 이라고 나오고

DiaryEditor에도
const env = process.env; env.PUBLIC_URL = env.PUBLIC_URL || "";
를 추가해봤지만 해결되지 않았습니다 어떻게 해야될까요?
import { useRef, useState, useContext } from "react";
import { useNavigate } from "react-router-dom";
import MyHeader from "./MyHeader";
import MyButton from "./MyButton";
import EmotionItem from "./EmotionItem";
import { DiaryDispatchContext } from ".././App";
const env = process.env;
env.PUBLIC_URL = env.PUBLIC_URL || "";
const emotionList = [
{
emotion_id: 1,
emotion_img: process.env.PUBLIC_URL + `/assets/emotion1.png`,
emotion_descript: "완전 좋음",
},
{
emotion_id: 2,
emotion_img: process.env.PUBLIC_URL + `/assets/emotion2.png`,
emotion_descript: "좀 좋음",
},
{
emotion_id: 3,
emotion_img: process.env.PUBLIC_URL + `/assets/emotion3.png`,
emotion_descript: "그럭저럭",
},
{
emotion_id: 4,
emotion_img: process.env.PUBLIC_URL + `/assets/emotion4.png`,
emotion_descript: "별로임",
},
{
emotion_id: 5,
emotion_img: process.env.PUBLIC_URL + `/assets/emotion5.png`,
emotion_descript: "최악임",
},
];
const getStringDate = (date) => {
return date.toISOString().slice(0, 10);
};
const DiaryEditor = () => {
const contentRef = useRef();
const [content, setContent] = useState("");
const [emotion, setEmotion] = useState(3);
const [date, setDate] = useState(getStringDate(new Date()));
const { onCreate } = useContext(DiaryDispatchContext);
const handleClickEmote = (emotion) => {
setEmotion(emotion);
};
const navigate = useNavigate();
const handleSubmit = () => {
if (content.length < 1) {
contentRef.current.focus();
return;
}
onCreate(date, content, emotion);
navigate("/", { replace: true }); // 뒤로가기 막기
};
return (
<div className="DiaryEditor">
<MyHeader
headText={"새 일기쓰기"}
leftChild={<MyButton text={"< 뒤로가기"} onClick={() => navigate(-1)} />}
/>
<div>
<section>
<h4>오늘은 언제인가요?</h4>
<div className="input_box">
<input
className="input_date"
value={date}
onChange={(e) => setDate(e.target.value)}
type="date"
/>
</div>
</section>
<section>
<h4>오늘의 감정</h4>
<div className="input_box emotion_list_wrapper">
{emotionList.map((it) => (
<div key={it.emotion_id}>
<EmotionItem
key={it.emotion_id}
{...it}
onClick={handleClickEmote}
isSelected={it.emotion_id === emotion}
/>
</div>
))}
</div>
</section>
<section>
<h4>오늘의 일기</h4>
<div className="input_bot text_wrapper">
<textarea
placeholder="오늘은 어떤가요?"
ref={contentRef}
value={content}
onChange={(e) => setContent(e.target.value)}
/>
</div>
</section>
<section>
<div className="control_box">
<MyButton text={"취소하기"} onClick={() => navigate(-1)} />
<MyButton text={"작성완료"} type={"positive"} onClick={handleSubmit} />
</div>
</section>
</div>
</div>
);
};
export default DiaryEditor;
Answer 3
0
https://github.com/Jacksang95/emotion-diary
현재 commit완료한 github주소입니다
img를 계속 불러오지 못하는데 이유를 잘 모르겠습니다 ㅠ
1
죄송합니다 다시 수정해서 올렸습니다!
이미지에 대한건 EmotionItem = ()에 ({}) 를 안해줘서 그런걸로 찾아냈습니다!
0
안녕하세요 이정환입니다.
우선 onClick is not a function은 해당 이미지 오류와는 무관합니다. 이 부분은 또 다른 코드상의 오류인 것 같아요 전체 코드를 CodeSandBox 혹은 Github 로 올려주시면 확인 가능할 것 같습니다!
이미지가 나타나지 않는 현상은 혹시 public/assets 디렉토리 아래에 이미지 파일들이 잘 저장되어 있는지 확인부탁드려요! 만약 잘 저장되어 있는데도 문제가 발생한다면 추가 답글 부탁드립니다!
useEffect와 lifecycle문의
0
10
1
프론트엔드 학습 수준 문의
0
25
2
리액트 챕터별 코드에서 eslint 설정파일이 없어요
0
41
2
데이터 로딩중 화면만 계속 나와요!!
0
51
2
퍼블리셔일경우 어느정도 수준까지 강의를 들어야할까요
0
76
2
이후의 커리큘럼 문의
0
101
2
실슬환경 설정에서 save후 console.log 부분이 새로고침이 안되는현상입니다.
0
49
2
최적화 관련 질문있습니다 (useMemo 등)
0
82
3
프로바이더 컴포넌트의 위치는 어떤 기준인가요?
1
79
3
Date 객체에 관련하여 질문드립니다.
0
82
2
리액트 개정판 교재 질문
0
58
2
예제코드가 안나와요!
0
75
2
select a variant 선택에서 javascript와 javascript+react compiler 중 무엇을 선택해야하나요? com
0
104
2
onMouseEnter 관련 문의 드립니다
0
89
3
배열의 렌더링 관련 질문 드립니다.
0
70
2
2:40초 refObj를 콘솔로 출력시 오류가 발생합니다.
0
111
2
TS, 리액트 강의중에 뭘 먼저 수강하는게 좋을까요?
0
131
2
useCallback 적용한 onCreate, onUpdate, onDelete 함수..
0
66
1
vs code 자동완성관련 문의
0
106
2
91강 useEffect내에서 상태변화함수 호출시 발생하는 에러
1
174
2
87강 필터 함수 질문
0
65
2
useRef, useState count 비교
0
64
2
안된다고했던 이유가 무엇이었는지 모르겠습니다
0
86
2
85강에서 객체를 왜 클래스로 만들어서 new 하지 않는건지 궁금합니다.
0
73
2


윽 ㅠㅠ Private 레포로 되어있는것 같아요!