React로 여러 객체를 배열로 정리한 데이터를 map 메소드로 표시
소개
반나절 지출하여 해결할 수있는 구현
오브젝트나 배열의 특징 등을 어쩐지 밖에 이해하지 않았기 때문에 끼웠다
메모로 남기기
하고 싶었던 일
상위 구성 요소로 관리하는 State
app.jsxconst [post,setPost] = useState([
{title:'Topic1', text:'Hello world'},
{title:'Topic2', text:'Hello world'},
{title:'Topic3', text:'Hello world'},
{title:'Topic4', text:'Hello world'},
{title:'Topic5', text:'Hello world'},
])
기사의 타이틀과 본문이라고 가정한 이 state를 List 형식으로 오브젝트의 수만큼 아이 컴퍼넌트로 표시하고 싶다
즉 ul의 바로 아래에 map 메소드로 객체의 수만큼 li 요소를 만들고,title.text각각의 값을 한층 더 아래의 컴퍼넌트에 props로서 건네준다
구현
List.jsxconst List = () => {
const state = useContext(PostContext);
return (
<div>
<ListUI>
{state.map((s) => {
return(
<ListItem key={s.title}>
<Items title={s.title} text={s.text}/>
</ListItem>
)
})}
</ListUI>
</div>
);
};
hooks의 usuContext에서 부모 구성 요소의 상태를 받고 map 메서드에서 객체 수만큼 돌립니다.
material UI의 ListItem에서 li 요소를 만들고 제목과 텍스트 값을 각각 아이의 구성 요소에 props로 전달했습니다.
Items.jsxconst Items = (props) => {
return (
<div>
<h1>{props.title}</h1>
<p>{props.text}</p>
</div>
);
};
watasareta
props를 이렇게 구현하면
할 수 있었다
넘어진 점
솔직히 객체나 배열에 대한 지식이 달고, 또 map을 사용해야 하는지 forEach를 사용해야 하는지 판단도 자신이 없어 어떻게든 구현하려고 우왕좌왕해 버렸다.
또한 콘솔에 반영되지만 화면에는 그려지지 않는 현상에 어려움을 겪었다.
map 메소드 뒤에 return을 쓰는 것을 잊어 버린 것이 원인이었습니다.
map의 결과를 ListItem>Items와 같이 여러 계층으로 표시하고 싶다면 return은 필수
결론
카탈시스
Reference
이 문제에 관하여(React로 여러 객체를 배열로 정리한 데이터를 map 메소드로 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/exsrx97/items/bf8d67fc5b7946758934
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
상위 구성 요소로 관리하는 State
app.jsx
const [post,setPost] = useState([
{title:'Topic1', text:'Hello world'},
{title:'Topic2', text:'Hello world'},
{title:'Topic3', text:'Hello world'},
{title:'Topic4', text:'Hello world'},
{title:'Topic5', text:'Hello world'},
])
기사의 타이틀과 본문이라고 가정한 이 state를 List 형식으로 오브젝트의 수만큼 아이 컴퍼넌트로 표시하고 싶다
즉 ul의 바로 아래에 map 메소드로 객체의 수만큼 li 요소를 만들고,title.text각각의 값을 한층 더 아래의 컴퍼넌트에 props로서 건네준다
구현
List.jsxconst List = () => {
const state = useContext(PostContext);
return (
<div>
<ListUI>
{state.map((s) => {
return(
<ListItem key={s.title}>
<Items title={s.title} text={s.text}/>
</ListItem>
)
})}
</ListUI>
</div>
);
};
hooks의 usuContext에서 부모 구성 요소의 상태를 받고 map 메서드에서 객체 수만큼 돌립니다.
material UI의 ListItem에서 li 요소를 만들고 제목과 텍스트 값을 각각 아이의 구성 요소에 props로 전달했습니다.
Items.jsxconst Items = (props) => {
return (
<div>
<h1>{props.title}</h1>
<p>{props.text}</p>
</div>
);
};
watasareta
props를 이렇게 구현하면
할 수 있었다
넘어진 점
솔직히 객체나 배열에 대한 지식이 달고, 또 map을 사용해야 하는지 forEach를 사용해야 하는지 판단도 자신이 없어 어떻게든 구현하려고 우왕좌왕해 버렸다.
또한 콘솔에 반영되지만 화면에는 그려지지 않는 현상에 어려움을 겪었다.
map 메소드 뒤에 return을 쓰는 것을 잊어 버린 것이 원인이었습니다.
map의 결과를 ListItem>Items와 같이 여러 계층으로 표시하고 싶다면 return은 필수
결론
카탈시스
Reference
이 문제에 관하여(React로 여러 객체를 배열로 정리한 데이터를 map 메소드로 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/exsrx97/items/bf8d67fc5b7946758934
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
const List = () => {
const state = useContext(PostContext);
return (
<div>
<ListUI>
{state.map((s) => {
return(
<ListItem key={s.title}>
<Items title={s.title} text={s.text}/>
</ListItem>
)
})}
</ListUI>
</div>
);
};
const Items = (props) => {
return (
<div>
<h1>{props.title}</h1>
<p>{props.text}</p>
</div>
);
};
솔직히 객체나 배열에 대한 지식이 달고, 또 map을 사용해야 하는지 forEach를 사용해야 하는지 판단도 자신이 없어 어떻게든 구현하려고 우왕좌왕해 버렸다.
또한 콘솔에 반영되지만 화면에는 그려지지 않는 현상에 어려움을 겪었다.
map 메소드 뒤에 return을 쓰는 것을 잊어 버린 것이 원인이었습니다.
map의 결과를 ListItem>Items와 같이 여러 계층으로 표시하고 싶다면 return은 필수
결론
카탈시스
Reference
이 문제에 관하여(React로 여러 객체를 배열로 정리한 데이터를 map 메소드로 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/exsrx97/items/bf8d67fc5b7946758934
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(React로 여러 객체를 배열로 정리한 데이터를 map 메소드로 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/exsrx97/items/bf8d67fc5b7946758934텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)