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
- Filter
- Spring Batch
- vue
- cheerio
- MSA
- SWAGGER
- gradle
- UsernamePasswordAuthenticationFilter
- cloud native
- openapi3
- SpringBoot
- MFA
- Spring Security
- OpenStack
- tasklet
- 리액트
- stopPropogation
- SpringRESTDocs
- AuthenticatoinProvide
- vuejs
- Crawling
- axios
- Reduxpender
- Spring REST Docs
- preventdefault
- Flyway
- REACT
- T-OTP
- Pender
- JavaScript
Archives
- Today
- Total
Miracle Morning, LHWN
13. 배열 항목 수정해보기 본문
일단 users 배열안의 객체에게 'active' 라는 속성을 추가로 주고 시작!
// App.js
const [users, setUsers] = useState([
{
id: 1,
username: 'velopert',
email: 'public.velopert@gmail.com',
active: true
},
{
id: 2,
username: 'tester',
email: 'tester@example.com',
active: false
},
{
id: 3,
username: 'liz',
email: 'liz@example.com',
active: false
}
]);
객체의 active 값에 따라 폰트의 색상이 바뀌도록 + 마우스를 올렸을 때 커서가 손가락 모양으로 변하도록 구현!
// UserList.js
function User({ user, onRemove }) {
return (
<div>
<b
style={{
cursor: 'pointer',
color: user.active ? 'green' : 'black'
}}
>
{user.username}
</b>
<span>({user.email})</span>
<button onClick={() => onRemove(user.id)}>삭제</button>
</div>
);
}
이번에는 App.js에서 onToggle 함수를 생성하여 active 값을 반전시켜보기!
→ 이때도 map을 써서 불변성을 지키는 업데이트를!
// App.js
const onToggle = id => {
setUsers(
users.map(user =>
user.id === id ? { ...user, active: !user.active } : user
)
);
};
그리고 App.js > UserList로 onToggle을 받아오고, 그걸 또 User한테 전달해준다.
// UserList.js
function User({ user, onRemove, onToggle }) {
return (
<div>
<b
style={{
cursor: 'pointer',
color: user.active ? 'green' : 'black'
}}
onClick={() => onToggle(user.id)}
>
{user.username}
</b>
<span>({user.email})</span>
<button onClick={() => onRemove(user.id)}>삭제</button>
</div>
);
}
출처 : https://react.vlpt.us/basic/15-array-modify.html
'IT 기술 > [React] 기본' 카테고리의 다른 글
15. useMemo 를 이용해서 연산된 값을 재사용 (0) | 2021.05.25 |
---|---|
14. useEffect로 마운트, 언마운트, 업데이트 시 특정 작업 설정해보기 (0) | 2021.05.25 |
12. 배열에서 항목을 제거하는 방법 (0) | 2021.05.25 |
11. 배열에 원소를 추가하는 두 가지 방법 (0) | 2021.05.25 |
10. 컴포넌트에서 변수를 관리해주는 useRef (0) | 2021.05.24 |
Comments