Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- DOM
- useState
- REACT
- 비동기함수
- 메소드 실행
- HTML
- input
- 자바스크립트
- Frontend Study
- addEventListener
- webProject
- 렌더링
- frontendstudy
- Props
- FrontendStydy
- typeScript
- 배열
- useRef
- JavaScript
- try.. catch
- 함수 실행
- 배열메소드
- CSS
- callback함수
- 리액트
- 컴포넌트
- promise
- 이벤트핸들링
- 이벤트
- this 객체
Archives
- Today
- Total
이다닷
[React] Day 16 - 배열에 항목 제거하기 본문
➡️삭제버튼 추가
UserList.js 변경
import React from 'react';
function User({ user, onRemove }) {
return (
<div>
<b>{user.username}</b> <span>({user.email})</span>
<button onClick={() => onRemove(user.id)}>삭제</button>
</div>
);
}
function UserList({ users, onRemove }) {
return (
<div>
{users.map(user => (
<User user={user} key={user.id} onRemove={onRemove}></User>
))}
</div>
);
}
export default UserList;
변경사진
➡️특정 id를 가진 객체를 삭제하는 기능을 가진 onRemove 함수 만들기
📌filter 함수
배열에서 특정 조건을 만족하는 값들만 따로 추출하여 새로운 배열을 만들어주는 함수이다.
APP.js 변경
import React, { useRef, useState } from 'react';
import UserList from './qoffhvjxm/UserList';
import CreateUser from './qoffhvjxm/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: 'dndhk',
email: 'dndhk@gmail.com'
}, {
id: 2,
username: 'Lee',
email: 'Lee@gmail.com '
}, {
id: 3,
username: 'dada',
email: 'dada@gmail.com'
}
]);
const nextId = useRef(4);
const onCreate = () => {
const user = {
id: nextId.current,
username,
email
};
setUsers([...users, user]);
setInputs({
username: '',
email: ''
});
nextId.current += 1;
};
//
const onRemove = ( id ) => {
setUsers(users.filter(user => user.id !== id));
};
//
return (
<>
<CreateUser
username={username}
email={email}
onChange={onChange}
onCreate={onCreate}
></CreateUser>
{/* onRemove를 추가해준다. */}
<UserList users={users} onRemove={onRemove}></UserList>
</>
);
}
export default App;
주석을 입력한 부분이 추가된 부분이다.
결과사진
'React' 카테고리의 다른 글
[React] Day 18 - useEffect를 사용하여 특정 상황에서 작업 수행하기 (0) | 2023.09.22 |
---|---|
[React] Day 17 - 배열에 항목 수정하기 (2) | 2023.09.21 |
[React] Day 15 - useRef로 컴포넌트 안의 변수를 만들어 배열에 항목 추가하기 (0) | 2023.09.19 |
[React] Day 14 - 배열 렌더링하기 (0) | 2023.09.18 |
[React] Day 13 - useRef로 특정 DOM 만들기 (0) | 2023.09.14 |