Comments about How to Fetch API Data With RTK (Redux-Toolkit)

4 years ago

Hi, I’m the author of RTK Query.

Please do not use that kind of createRequesthelper function.
That is taken from a tutorial that grossly misunderstands whatbaseQuery is for - and seems to be spreading further.

Essentially, baseQuery is already a createRequest function like this - the return value of an endpoint's query function will be passed as first argument into baseQuery, which will in the case of fetchBaseQuery then call fetch.

So please use fetchBaseQuery correctly instead:

export const categoriesApi = createApi({
    reducerPath: 'someApi',
    baseQuery: fetchBaseQuery({ 
      baseUrl,
//    either you can just set `headers` here:
//    headers: someHeaders

//    or you use `prepareHeaders` where you can do some calulations and have access to stuff like `getState` or the endpoint name
      prepareHeaders: (headers, { getState, endpoint, type, forced }) => {
         headers.set("Accept", "application/vnd.api+json")
         headers.set("Content-Type": "application/vnd.api+json")
         return headers
      }
     }),
    endpoints: (builder) => ({
        getAllCategories: builder.query({
          query: () => { url: `/someUrl` }
// or the short notation: if you only have an `url` just pass a string
//        query: () => `/someUrl`
        }),
    })
});

😊+

0 0

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks