¡Gracias de antemano por su tiempo!
Como describe el título, estoy tratando de obtener datos de un archivo json de forma asincrónica y almacenarlos en el estado con la última versión de Toolkit de Redux. Desafortunadamente, corriendo
dispatch(getCities())Produce TypeError no capturado: la acción no está definida
¡Agradecería cualquier idea sobre esto! A continuación va el código:
TIENDA.JS
import { configureStore } from "@reduxjs/toolkit"; import citiesReducer from "../features/cities/citiesslice"; const store = configureStore({ reducer:{ cities: citiesReducer } }) export default store;CITIESSLICE.JS
import { createSlice, createAsyncThunk } from "@reduxjs/toolkit" const API_URL = 'https://warply.s3.amazonaws.com/data/test_pois.json' export const getCities = createAsyncThunk( "cities/getCities", async (dispatch, getState)=>{ return await fetch('https://warply.s3.amazonaws.com/data/test_pois.json') .then( console.log('test') ) } ); const citiesSlice = createSlice({ name: "city", initialState: { cities: [], loading: 'idle' }, extraReducers:{ [getCities.pending]: (state,action)=>{ state.loading = "pending" }, [getCities.fulfilled]: (state, action)=>{ state.loading = "succeded" state.cities = action.payload }, [getCities.rejected]: (state, action)=>{ state.loading = "failed" } }, }) export default citiesSlice.reducer;MAPLIST.JS
import React, { useEffect } from 'react'; import { SafeAreaView, StyleSheet, Image, Text, View } from 'react-native'; import getCities from '../features/cities/citiesslice'; import { useDispatch, useSelector } from 'react-redux'; function MapList(props) { const dispatch = useDispatch(); const {cities}= useSelector(state => state.cities) useEffect(()=>{ dispatch(getCities()) },[]) return ( <SafeAreaView style={styles.container}> <View style={styles.topnav}> <Image source={require('../assets/warply_w.png')} style={styles.logo}/> </View> {cities && cities.map((cities, i)=> <Text key={i}>test</Text>)} </SafeAreaView> );Los estilos no incluidos en el extracto anterior probablemente no estén asociados con el problema