Tenemos 3 tipos de acciones, BuyPokemon que permite comprar un juego de pokemon de la tienda, ReturnPokemon que permite devolver un juego de pokemon a la tienda y fetchPokemon que hacer una petición Rest a "pokeapi" para buscar un pokemon en especifico.
Ahora que tenemos las acciones que podemos realizar en nuestra Store, crearemos a nuestros trabajares o Reducers que son los encargados de realizar las acciones en el Store.
Tenemos dos Reducers, gamesReducer que es el encargado de realizar las acciones BuyPokemon y ReturnPokemon, SearchReducer es el encargado de realizar las acciones para la petición a la API.
Ya con los Reducers podemos crear la Store Redux
//importar composeWithDevTools si se hizo el paso opcional numero 6
import { composeWithDevTools } from 'redux-devtools-extension'
import { createStore, combineReducers, applyMiddleware } from 'redux'
import thunk from 'redux-thunk'
import {gamesReducer, SearchReducer } from './reducer'
// DefaultState
export const defaultGamesState = {
pokemon: 10,
}
export const initialStateSearch = {
loading: false,
pokemon: [],
error: ''
}
// Store
const rootReducers = combineReducers({
games: gamesReducer,
seeker: SearchReducer
})
// copiar esta linea si se tiene redux devtools instalado
const store = createStore(rootReducers, composeWithDevTools(
applyMiddleware(thunk)
))
// copiar esta linea si no se instalo redux devtools
const store = createStore(rootReducers, applyMiddleware(thunk)
)
export default store;
Con esto, hemos creado la Store para almacenar los datos necesarios para el funcionamiento correcto de la aplicación.