자바스크립트 내장함수인 fetch()를 사용해 API를 호출하고, API의 응답 데이터를 App컴포넌트가 가지고 있는 일기 데이터인 data state에 저장해서 일기데이터의 초기값을 설정해보기
무료로 API서비스를 제공해서 테스트를 할 수 있게 도와주는 사이트 (https://jsonplaceholder.typicode.com/)
API의 데이터를 적절히 가공하여 일기데이터 초기값을 API를 통해서 설정하게됨.
// React에서 API호출하여 사용하기
const getData = async () => {
const res = await fetch('https://jsonplaceholder.typicode.com/comments').then((res) => {
return res.json();
})
// 0~19까지 인덱스를 짜고, map()함수 돌리기
const initData = res.slice(0, 20).map((res) => {
return {
author: res.email,
content: res.body,
emotion: Math.floor(Math.random() * 5) + 1, // 0~5까지 랜덤수 추출
create_date: new Date().getTime(),
id: dataId.current++ // dataId를 현재 current값으로 넣고나서 ++을 통해 1을 더함
}
})
// API로 가공한 데이터를 일기데이터에 초기값으로 저장
setData(initData);
}
// Mount되는 시점에 바로 한번 실행
useEffect(() => {
// Mount되는 시점에 수행할 콜백함수에 getData()라고 API를 호출하는 함수를 적용
getData();
}, [])