state에 문자열이나 숫자값이 아닌 Object 형태의 값을 넣어서 컨트롤 해보겠습니다.
StatePrc.js 파일을 component 폴더 하위에 생성합니다.
import { useState } from "react";
export default function StatePrc(){
const [msg, setMsg] = useState({"message" : "", "user" : ""});
return (
<>
<div>
<h1>Event Test</h1>
<div>message : {msg.message}</div>
<div>user : {msg.user}</div>
<input type="text"
name="msg"
placeholder="입력칸"
value={msg.message}
onChange={(ev)=>{
setMsg({...msg, "message" : ev.target.value});
}}
></input>
<input type="text"
name="user"
placeholder="입력칸"
value={msg.user}
onChange={(ev)=>{
setMsg({...msg, "user" : ev.target.value});
}}
></input>
<button onClick={()=>{
alert(msg.message + "메세지를 초기화 합니다.");
setMsg({"message" : "", "user" : ""});
}}>초기화</button>
</div>
</>
);
}
App.js에 방금 작성한 StatePrc 컴포넌트가 출력되도록 추가합니다.
왼쪽 input은 msg.message를 값을 참조하고
value={msg.message} |
오른쪽 input은 msg.user의 값을 참조하도록 코드를 작성하였습니다.
value={msg.user} |
state의 값중 object의 값을 변경할 때에는 기존값을 spread 연산자라고 하는 ... 연산자를 이용하여 값을 변경합니다.
setMsg({...msg, "user" : ev.target.value}); |
'Web > ReactJS' 카테고리의 다른 글
#09. map()함수의 활용 (0) | 2023.01.18 |
---|---|
#정리 : Event를 이용하여 State의 값을 변경 (0) | 2023.01.11 |
#08. state의 사용 useState (0) | 2023.01.09 |
#07-04. props : isRequired의 사용 (0) | 2023.01.04 |
#07-03. props : propTypes의 사용 (0) | 2023.01.03 |