...(users?.map((user: User) => { const { data: userStories } = useQuery<Story[]>( `/admin/${user.id}/stories`, fetcher ); const { data: likes } = useQuery<Like[]>( `/admin/${user.id}/likes`, fetcher ); ------- 생략 -------- }
위와 같이 리턴받은 User타입의 배열을 .map()을 통해 userId별로 useQuery를 통해 api를 호출하려하였는데 callback안에서는 useQuery를 사용할 수 없다고 에러가 발생하였다.
const [userId, setUserId] = useState(Number); const { data: users } = useQuery<User[]>(`/admin/users`, fetcher); const { data: csvDatas, refetch: refetchCsvDatas } = useQuery<any>( `/admin/users/${userId}`, fetcher, { enabled: false, } ); ...(users?.map((user: User) => { setUserId(user.id); refetchCsvDatas(); }
useState와 refetch를 사용하여 .map( )안의 userId를 관리하여 매번 새롭게 API를 호출하는 것으로 변경하여 callback useQuery 문제를 해결하였다.
.map( )안에 useQuery 사용 시 callback 에러 발생
위와 같이 리턴받은 User타입의 배열을 .map()을 통해 userId별로 useQuery를 통해 api를 호출하려하였는데 callback안에서는 useQuery를 사용할 수 없다고 에러가 발생하였다.
useState와 refetch를 사용하여 .map( )안의 userId를 관리하여 매번 새롭게 API를 호출하는 것으로 변경하여 callback useQuery 문제를 해결하였다.
'개발 > ReactJS' 카테고리의 다른 글