Spring Boot로 만든 API에서 엑셀 파일을 다운로드 해보자..
axios
{responseType: 'blob'}
설정을 해준다.
이러함.. apiClient
는 axios.create()
으로 만든 모듈?이다.
const res = await apiClient.get(url, {
responseType: 'blob',
});
return res;
download
useAsync
를 사용해서 state
값이 성공이면.. data
상태값이 변경되게 된다. 그래서 useEffect()
로 처리했다.
혹시몰라 컴포넌트가 언마운트되면 해당 링크도 삭제하게 만들었다.
useEffect(() => {
if (fileData) {
const url = window.URL.createObjectURL(new Blob([fileData.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'test.xlsx');
link.setAttribute('id', 'tempLink');
document.body.appendChild(link);
link.click();
}
return () => {
const link = document.querySelector('#tempLink');
link && link.remove();
};
}, [fileData]);
'STUDY > React' 카테고리의 다른 글
React | react-chartjs-2 ticks 설정 (0) | 2022.04.11 |
---|---|
React | 브라우저 뒤로가기 버튼 감지 (0) | 2022.02.25 |
React | 반응형 테이블을 만들어보자.. (8) | 2021.11.12 |
React | API 요청 테스트 (0) | 2021.07.21 |
React | API 요청을 분리해보기.. (0) | 2021.07.21 |