배열에 항목추가하기

작업
map()
filter()
진행 상태
완료
진행일시
2021/11/27
학습자

[ 배열 추가 방법 ]

이번에는 배열에 새로운 항목을 추가하는 방법을 알아보겠습니다.
우선 배열에 항목을 추가하기 위해 CreateUser.js라는 컴포넌트를 작성해야한다

CreateUser.js

import React from 'react'; function CreateUser({username, email, onChange, onCreate}) { return ( <div> <input name="username" placeholder="계정명" onChange={onChange} value={username} /> <input name="email" placeholder="이메일" onChange={onChange} value={email} /> <button onClick={onCreate}>등록</button> </div> )l } export default CreateUser;
JavaScript
복사
이번 컴포넌트에서는 상태관리를 CreateUser 에서 하지 않고 부모 컴포넌트인 App 에서 하게 하고, input 의 값 및 이벤트로 등록할 함수들을 props 로 넘겨받아서 사용

App.js

이 컴포넌트를 App 에서 UserList 위에 렌더링해보세요.
import React, { useRef } from 'react'; import UserList from './UserList'; import CreateUser from './CreateUser'; function App() { const [ Inputs, setInputs ] = useState( { username : '', email : '', ) }; const { username, email } = Inputs; const onChange = e = > { const [name , value } = e.target; setInputs({ ...Inputs, [name] : value )}; }; const [users, setUsers] = useState([ { id: 1, username: 'velopert', email: 'public.velopert@gmail.com' }, { id: 2, username: 'tester', email: 'tester@example.com' }, { id: 3, username: 'liz', email: 'liz@example.com' } ]); const nextId = useRef(4); const onCreate = () => { const user = { id : nextId.current, username , email }; setUsers[...users, user]); setInputs({ username : '', email : '' }); nextId.current += 1; }; return ( <> <CreateUser username={username} email={email} onChange={onChange} onCreate={onCreate} /> <UserList users={users} /> </> ); } export default App;
JavaScript
복사