잘못 된 내용에 대한 지적은 언제든 환영입니다.
const [users, setUsers] = useState([
{
id: 1,
username: "uncyclocity",
email: "seongbeom_lee@kakao.com",
},
{
id: 2,
username: "yoong_kim",
email: "dl2qja@gmail.com",
},
{
id: 3,
username: "sblee",
email: "xuct227@gmail.com",
},
]);
concat
, filter
, map
등이 있다. const user = {
id: nextId.current,
username,
email
}
// 복붙 된 기존 users 배열의 요소들과 새로 추가할 요소를 포함한 새 배열
setUsers([...users, user])
concat
사용 const user = {
id: nextId.current,
username,
email
}
// 기존 users에 새 요소가 추가 된 새 배열
setUsers(users.concat(user));
nextId.current += 1;
filter
를 활용한다.// 지정한 고유값(id)과 동일하지 않은 요소들만 추려 반환한다.
const onRemove = (id) => {
setUsers(users.filter((user) => user.id !== id));
};
map
을 활용한다.// 지정한 고유값(id)과 동일한 요소인 객체 리터럴의 active 값을 반전시켜 반환하고,
// 동일하지 않은 고유값의 요소는 그냥 반환시킨다.
const activer = (id) => {
setUsers(
users.map((user) =>
user.id === id ? { ...user, active: !user.active } : user
)
);
};
References
"12. useRef 로 컴포넌트 안의 변수 만들기" .velopert
"13. 배열에 항목 추가하기" .velopert
"14. 배열에 항목 제거하기" .velopert
"배열 항목 수정하기" .velopert
"React Hooks : useRef() 함수" .xiubindev