const [data, setData] = useState(null) useEffect(() =>{ axios.get('api') .then((res) => setData(res.data)) .catch((err) => console.error(err)) }, [data])
useEffect 안에서 외부 API를 요청 시 의존성 배열에 state 값을 넣으면 단순히 'data'라는 값이
변경될 때마다 새로 페이지를 렌더해주겠지 라는 안일한 생각으로 코드를 짠 결과,
'setData'로 인하여 'data'가 변경되고 그러면 또 useEffect가 실행 되는 무한요청이 발생하게 되었다.
외부 API 요청 시 내가 필요한 state값에 값을 넣기 위해서는
const [data, setData] = useState(null)
const [user, setUser] = useState(null)
useEffect(() =>{
axios.get('api')
.then((res) => {setData(res.data)
{user} = res.data.user
setUser(user)
})
.catch((err) => console.error(err))
}, [])
식의 구조 분해 할당식으로 부여하면 원하는 값을 추출해낼 수 있다.