#reactjs #redux
#reactjs #переопределение
Вопрос:
итак, у меня есть это
index.js
import {getShowsHome} from './reducers/reducers';
const store = createStore(getShowsHome);
ReactDOM.render(<Provider store={store}> <App /> </Provider>, document.getElementById('root'));
App.js
const mapStateToProps = (state) => {
return {
tvSeries: state.getShowsHome.tvSeries,
isPedding: state.getShowsHome.isPedding,
movies: state.getShowsHome.movies,
horror: state.getShowsHome.horror,
scifiFantasySeries: state.getShowsHome.scifiFantasySeries
}
}
const mapDispatchToProps = (dispatch) => {
return {
getShows: () => dispatch(getShows())
}
}
Редуктор
const initialState = {
isPedding: true,
tvSeries: [],
movies: [],
horror: [],
scifiFantasySeries: []
}
export const getShowsHome = (state=initialState, action={}) => {
switch(action.type) {
case GET_SHOWS_HOME_PEDDING:
return Object.assign({}, state, {isPedding: true});
case GET_SHOWS_HOME_SUCCESS:
return Object.assign({}, state, {
tvSeries: action.payload.popularSeries,
movies: action.payload.popularMovies,
horror: action.payload.horrorMovies,
scifiFantasySeries: action.payload.scifiFantasySeries,
isPedding: false,
});
case GET_SHOWS_HOME_FAILED:
return Object.assign({}, state, {error: action.payload});
default:
return state;
}
}
Итак, проблема в том, что я получаю сообщение об ошибке, я получаю TVSeries (только потому, что оно первое), оно не определено, это похоже на то, что хранилище не передает редукторы в приложение, почему
Ответ №1:
ваше хранилище будет иметь состояние напрямую, не под ключом ‘getShowsHome’, это просто имя функции. так что попробуйте
tvSeries: state.tvSeries
если у вас есть несколько редукторов, объедините их (импортируйте из redux)
const store = createStore(combineReducers({ getShowsHome: getShowsHome, ....other here }))