Реагирует переопределяет неопределенное значение mapStateToProps

#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 }))