// 몸무게 데이터 저장할 state
const [data, setData] = useState([]);
// 목표까지 얼마 남았는지 저장할 state
const [target, setTarget] = useState(0);
// 서버로 부터 최근 몸무게 5개 가져오기
const { data: weightData, isLoading } = useFetchData(
"/users/recent-weight-records"
);
useEffect(() => {
let arr = weightData?.map((item, idx) => {
// 목표까지 얼마 남았는지 저장하는 코드
// 마지막 데이터가 가장 최근 몸무게이므로 목표 몸무게에서 마지막 요소의 몸무게를 빼서 설정
if (idx === weightData.length - 1) {
setTarget((Number(item.targetWeight) - Number(item.weight)).toFixed(1));
}
return {
name: new Date(item.createdAt).toLocaleDateString(),
weight: item.weight,
};
});
setData(arr);
}, [weightData]);
if (isLoading) return "Loading...";
구현한 것
마이페이지 몸무게 차트 api 연동 완료