문제
서버에서 파일이름과 파일경로가 담긴 객체를 문자열로 넘겨주는데, 난 각자 필요하니까 객체로 따로 저장
해결방법
data 배열이 업데이트 될 때 useEffect hook으로 파일 저장, data?.attachment 부분으로 data 가 빈배열이 아니면서 attachment 가 존재할때만 json으로 파싱
const [data, setData] = useState([]);
const getData = () => {
...API연동...
if(res.code===200) {
setData = res.data.result;
}
}
const [fileStore, setFileStore] = useState([])
useEffect(()=>{
if(data?.attachment!=='') {
const jsonString = JSON.parse(data.attachment);
if(jsonString!==null) {
setFileStore = [...jsonString]
}
}
},[data])
이제 fileStore.fileName, fileStore.uploadPath 로 저장된 value를 읽어올 수 있다
++ 추가, 데이터 받아올 떄 바로하기
const getCategoyList = () =>{
var config = {
method: 'post',
maxBodyLength: Infinity,
headers: {
'Authorization': 'Bearer ' + process.env.REACT_APP_TEMP_JWT_LGEKR,
},
};
axiosInstance('/faqCa/list', config)
.then(function (response){
let resData = response.data;
console.log(resData,'dddd')
if(resData.code===200) {
let data = resData.result.map(item => (
console.log('===============')
,{
...item,
categoryIcon: JSON.parse(item.categoryIcon) // categoryIcon 필드를 파싱하여 JavaScript 객체로 변환
}));
setIconList(data);
}else {
console.log(resData)
}
})
.catch(function(error) {
console.log('error',error)
})
}