Estou usando o RTK Query com sucesso em meu projeto, mas tenho 8 tags/conjuntos de dados e cada um deles precisa de getOne, getAll, adicionar, atualizar, excluir, recuperar consulta/mutação e alguns precisam de mais. Está ficando difícil de gerenciar, então estou tentando usar injectEndpoints para dividir as consultas por tag usando o tutorial em https://redux.js.org/tutorials/essentials/part-8-rtk-query-advanced#injecting- pontos finais .
Infelizmente, ao usar sua estrutura de código, recebo um erro Uncaught ReferenceError: builder is not defined
. Estou esquecendo de algo?
import { apiSlice } from "./apiSlice";
export const accountsSlice = apiSlice.injectEndpoints({
endpoints: builder ({
getAccounts: build.query({
query: () => ({
url: '/api/accounts',
method: 'get'
}),
providesTags: (result, error, arg) => [{ type: 'Account', id: arg }]
}),
getAccount: build.query({
query: accountId => ({
url: `/api/accounts/${accountId}`,
method: 'get',
}),
providesTags: (result, error, arg) => [{ type: 'Account', id: arg }]
}),
addAccount: build.mutation({
query: (account) => {
console.log('account data:', account);
return {
url: `/api/accounts/store`,
method: 'post',
data: account
}
},
invalidatesTags: (result, error, arg) => [{ type: 'Account'}]
}),
updateAccount: build.mutation({
query: (account) => {
console.log('account data:', account);
return {
url: `/api/accounts/${account.acc_id}/update`,
method: 'patch',
data: account
}
},
invalidatesTags: (result, error, arg) => [{ type: 'Account', id: arg.id}]
}),
})
})
É uma definição de função com um argumento chamado
builder
, não uma chamada para a funçãobuilder
:Em vez de
builder({ /* ... */ })
(como no seu código),deveria ser
que é curto para
ou