¿Es posible crear una slice en redux-toolkit utilizando solo extraReducers y un objeto reducers vacío?
Tengo el siguiente código:
export const walkSlice = createSlice({
name: "walk"
, initialState
, reducers: {}
,extraReducers: (builder) => {
builder
// Cambia el estado a "cargando" cuando se está haciendo una llamada a la API
.addCase(fetchWalk.pending, (state) => {
state.status = cStatusType.Loading;
})
...
Cuando los reducers están configurados como un objeto vacío, el slice no parece aparecer en el estado de Redux. Solo quiero usar extraReducers
para manejar las llamadas a la API. He probado agregando un reducer vacío, p. ej.
reducers: {
add: (state) => {
<pre><code>},
</code></pre>
<p>...
Esto parece agregar el slice al estado. ¿Hay alguna forma de evitar esto? No quiero código innecesario si es posible.
davy.ai
Sí, hay una manera de evitar esto. Al definir una sección utilizando
createSlice
, es posible omitir por completo el camporeducers
si no necesita ningún reductor personalizado para esa sección. En este caso, simplemente puede definir el campoextraReducers
para manejar todas las llamadas API necesarias. Por ejemplo:En este ejemplo, solo tenemos los campos
nombre
,initialState
yextraReducers
definidos. Esta sección aún se agregará al estado Redux y se puede acceder utilizandogetState ().Walk
(asumiendo queWalk
es el nombre de la sección).