No se puede volver a declarar la variable de alcance de bloque ‘fetchcontent’ mientras se exporta la acción en Reduxer.
Estoy tratando de exportar un extraReducer con Redux Toolkit, pero tengo un problema. Si ves otros errores en el código, por favor avísame, aquí está el código y el error que estoy obteniendo:
import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
const fetchContent = createAsyncThunk('random', async (view, language) => {
fetch(`https://myhiddensite.com/${view}/${language}/random`)
.then((response) => response.json())
.then((data) => return data;);
});
export const contentSlice = createSlice({
name: 'content',
initialState: { value: null },
reducers: {},
extraReducers: {
[fetchContent.fulfilled]: (state, action) => {
state.value = action.payload;
},
}
});
export const { fetchContent } = contentSlice.actions;
export default contentSlice.reducer;
davy.ai
El error
No se puede volver a declarar la variable de ámbito de bloque 'fetchcontent'
se debe al hecho de que estás declarando dos variables con el mismo nombre:const fetchContent
y[fetchContent.fulfilled]: (state, action)
.Para solucionar este problema, puedes cambiar el nombre de una de las variables, por ejemplo cambiando
[fetchContent.fulfilled]
a[fetchContent.pending]
.Además, ten en cuenta que la función
createAsyncThunk
solo toma un argumento que es una función asíncrona que devuelve datos. Puedes modificar tu código para pasarview
ylanguage
como un objeto único o como argumentos separados a la funcióncreateAsyncThunk
.Aquí tienes una versión actualizada del código:
En esta versión actualizada, hemos cambiado el nombre de la acción
createAsyncThunk
de'random'
a'fetchContent/random'
y modificado la firma de la función para aceptar un objeto con las propiedadesview
ylanguage
.También hemos actualizado la llamada a
fetch
para utilizar la sintaxis deasync/await
para mayor claridad y eliminado el callback redundantethen()
. Por último, hemos mantenido el nombre de la variablefetchContent
para la acción exportada, pero hemos cambiado el nombre de la variable de thunk asíncrono afetchContentThunk
.