티스토리 뷰
import React from "react";
import LetterItem from "./LetterItem";
import styled from "styled-components";
export default function LetterList({
letters,
text,
onDeleted,
onEdit,
personName,
}) {
return (
<Section>
<SectionTitle>{text}</SectionTitle>
<SectionUl>
{letters
?.filter(
(letters) => !personName || letters.personName === personName
)
.map((filteredLetter) => (
<SectionLi key={filteredLetter.id}>
<LetterItem
letter={filteredLetter}
onDeleted={onDeleted}
onEdit={onEdit}
/>
</SectionLi>
))}
</SectionUl>
</Section>
);
}
구현하고 싶었던 것
letters를 filter하는데 personName이 있으면 personName과 일치하는 리스트를 넣어주고,
없다면 그냥 전체 리스트를 반환하는 것을 만들고 싶었다.
처음에는 if를 넣어주어야 하나 고민을 하다가 찾아보니 OR 연산자를 많이 사용하고 있더라!!
이런 식은 처음 작성해봐서 너무 신기했다!!
{letters
?.filter(
(letters) => !personName || letters.personName === personName
)
.map((filteredLetter) => (
<SectionLi key={filteredLetter.id}>
<LetterItem
letter={filteredLetter}
onDeleted={onDeleted}
onEdit={onEdit}
/>
</SectionLi>
))}
💡코드 해석
letters가 있는 경우 filter를 통해 조건을 주고 ture:false 반환 , letter가 없다면 filter없이 map을 해주고 있다.
letters.filter는 letters를 받아서 personName이 없으면 true : letters.personName 과 personName이 같다면 false
위 조건에서 true인 경우는 전체 배열을 보여줄 것이고 false인 경우 false한 값을 가진 배열만 보여주도록 만들었다.
리스트를 사용할 일은 많음으로 다음에 꼭 또 써먹어봐야지!!!!
'TIL' 카테고리의 다른 글
2024. 02. 13 react 조건에 따른 컴포넌트 보여주기 (0) | 2024.02.13 |
---|---|
2024. 02. 04 redux_2 (3) | 2024.02.05 |
2024. 01.31 FanLetter 만들면서 알게 된 것들 정리하기 (1) | 2024.01.31 |
2024. 01. 28 날짜로만 디데이 구하기 (0) | 2024.01.29 |
2024. 01. 26 Redux 알아보기 (3) | 2024.01.27 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- simple Icon 사용방법
- axiosinstance 사용 시 토큰 사용 법
- 영화별점만들기
- styled component 설치방법
- styled component 사용방법
- axios instance 작성하기
- readme작성해보기
- Warning: Each child in a list should have a unique "key" prop.
- axios 설치하기
- readme 작성해야 하는 이유
- readme 역할
- 유효성검사
- 에러모음집
- 별점만들기
- nextjs 토큰 만료처리하기
- styled component GlobalStyle 사용방법
- axios CRUD
- styled component 조건부 사용방법
- 영화 별점
- git cache
- readme 이미지 추가 방법
- readme 작성 방법
- Warning: A component is changing an uncontrolled input to be controlled.
- 유효성검사 css
- Warning: validateDOMNesting(...): <li> cannot appear as a descendant of <li>
- axios 사용하기
- 별점 색채우기
- Fetch와 Axios 의 장단점
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함