Reputation: 192
I call multiple graphql query
using useQuery
. And it's shows error like
Too many re-renders. React limits the number of renders to prevent an infinite loop.
I know why it came but i don't know how to prevent from this error. This is Functional components
my code here
const [categoryList, updateCategoryList] = useState([]);
const [payeeList, updatePayeeList] = useState([]);
if (data) {
const categories = (data.categories as unknown) as Category[];
if (
!isEqual(categoryList, categories) ||
categoryList.length !== categories.length
) {
updateCategoryList([...categories]);
}
}
if (isEmpty(payeeList)) {
const { loading, data } = useQuery(payeesQuery);
if (data) {
const payees = (data.payees as unknown) as Payee[];
if (!isEqual(payeeList, payees) || payeeList.length !== payees.length) {
updateCategoryList([...payees]);
}
}
}
Sorry guys I noob for react.
Upvotes: 0
Views: 1083
Reputation: 467
for eg you can use like this
const ExampleComponent = () => {
const { loading:payeesLoading, data:payeesData } = useQuery(payeesQuery);
const { loading:secondLoading, data:secondData } = useQuery(secondQuery);
useEffect(() => { //effect hook for first query
} ,[payeesData] )
useEffect(() => { //effect hook for second query
} ,[secondData] )
return (<div>
your contents
</div>)
}
like this you can write multiple querys in a single component.
Upvotes: 1