728x90
사용자 입력
import { useState } from "react";
const DiaryEditor = () => {
const [state, setState] = useState({
author: "",
content: "",
});
return (
<div className="DiaryEditor">
<h2> 오늘의 일기</h2>
<div>
<input
name="author"
value={state.author}
onChange={(e) => {
setState({ author: e.target.value, content: state.content });
}}
/>
</div>
<div>
<textarea
value={state.content}
onChange={(e) => {
setState({ content: e.target.value, content: state.author });
}}
/>
</div>
</div>
);
};
export default DiaryEditor;
... 연산자 사용 방법
import { useState } from "react";
const DiaryEditor = () => {
const [state, setState] = useState({
author: "",
content: "",
});
return (
<div className="DiaryEditor">
<h2> 오늘의 일기</h2>
<div>
<input
name="author"
value={state.author}
onChange={(e) => {
setState({
...state,
author: e.target.value,
});
}}
/>
</div>
<div>
<textarea
value={state.content}
onChange={(e) => {
setState({
...state,
content: e.target.value,
});
}}
/>
</div>
</div>
);
};
export default DiaryEditor;
setState({
...state,
author: e.target.value,
});
onChange 이벤트 한번에 사용하기
import { useState } from "react";
const DiaryEditor = () => {
const [state, setState] = useState({
author: "",
content: "",
});
const hadleChangeState = (e) => {
console.log(e.target.name);
console.log(e.target.value);
setState({
...state,
[e.target.name]: e.target.value,
});
};
return (
<div className="DiaryEditor">
<h2> 오늘의 일기</h2>
<div>
<input name="author" value={state.author} onChange={hadleChangeState} />
</div>
<div>
<textarea
name="content"
value={state.content}
onChange={hadleChangeState}
/>
</div>
</div>
);
};
export default DiaryEditor;
const hadleChangeState = (e) => {
console.log(e.target.name);
console.log(e.target.value);
setState({
...state,
[e.target.name]: e.target.value,
});
};
728x90
'Web > React' 카테고리의 다른 글
[React] Lifecycle 생애주기 및 사용방법 (0) | 2023.04.21 |
---|---|
[React] 포커스 이벤트 주기 import { useRef } (0) | 2023.04.20 |
[React] 컴포넌트간 데이터 이동 Props (0) | 2023.04.20 |
[React] React State (0) | 2023.04.20 |
[React] React설명 및 장점 설치방법 (1) | 2023.04.20 |