I have a sample component as follows. I am trying to use React Query to get data from my endpoint(Graphql). I have a custom hook which I have also listed below.
const App =(props)=>{
if (me && me.token) {
let headers = {
Authorization: me.token,
}
const { loading, error, data } = useGQLQuery('getUploads', GetUploadedFiles, headers)
let tableData = []
if (data && data.uploads) {
tableData = data.uploads
}
} else {
message.info("You need to be logged in to manage your assets!")
return;
}
}
Custom Hook →
export const useGQLQuery = (key, query, variables,headers={}, config = {}) => {
let gqlClient = new GraphQLClient(endpoint)
const fetchData = async () => gqlClient.request(query, variables, headers)
return useQuery(key, fetchData, config)
}
I would like to pass the current user's token information in the header.
So far so good.
Now , whenever I am trying to load this compoent, I get the following error
React Hook "useGQLQuery" is called conditionally.
React Hooks must be called in the exact same order in every component render.
Did you accidentally call a React Hook after an early return? react-hooks/rules-of-hooks
I need to pass the current user's token which is why I do this
if (me && me.token) {
let headers = {
Authorization: me.token,
}
const { loading, error, data } = useGQLQuery('getUploads', GetUploadedFiles, headers)
but it is the point where all issue happens.
Can you please let me know how can I do , what I am trying to do here. Any help with some examples will be a lot of help.
Thanks