// DiaryEditor.js
const DiaryEditor = () => {
const [author, setAuthor] = useState("");
const [content, setContent] = useState("");
const onChanging = (e) => {
setAuthor((e) => e.target.value);
};
return (
<div className="DiaryEditor">
<h2>Diary</h2>
<div>
<input value={author} onChange={onChanging}></input>
</div>
<div>{/* <textarea value={content} onChange={onChanging2}></textarea> */}</div>
</div>
);
};
7번 라인은 setAuthor((e) => e.target.value);
이 부분으로, 여기서 target이 undefined라서 value에 접근할 수 없어 TypeError가 뜬다.
아니 왜 안돼.. 하고 찬찬히 뜯어보니
const onChanging = (e) => {
setAuthor((e) => e.target.value);
};
onChaning 함수에 매개변수로 e 라는 이름을 줬고 또 그 안에서 실행하는 setAuthor의 매개변수로도 e라는 이름을 줘서, e.target.value가 내가 원한 그 onChanging에서 받은 이벤트 객체가 아니라 setAuthor에서 받아오는 e(그러니까 author)로 접근하는거라서 위와 같은 에러가 나온거다.
const onChanging = (e) => {
setAuthor((author) => e.target.value);
};
const onChanging = (e) => {
setAuthor(e.target.value);
};