Почему отдельные редукторы должны работать, но реализация комбинированного редуктора приводит к ошибкам?

#reactjs #react-redux #redux-thunk

#reactjs #реагировать-redux #redux-thunk

Вопрос:

Я пытаюсь реализовать комбинированный редуктор, если кто-то может взглянуть, все, что я вижу, верно. Если я добавлю каждый отдельный редуктор, это сработает, но затем вставлю rootReducer и ничего не получится. Выдающий мне ошибку props.mutts / felines / applicants.map не является функцией.

 import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import { createStore, applyMiddleware, compose} from 'redux';
import thunk from 'redux-thunk';
import { Provider } from 'react-redux';
import { combineReducers } from 'redux';
import  applicantReducer  from './reducers/applicantReducer';
import  catReducer  from './reducers/catReducer';
import  dogReducer  from './reducers/dogReducer';
import App from './App';

import * as serviceWorker from './serviceWorker';

const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;

const rootReducer = combineReducers({
       applicants: applicantReducer, 
       cats: catReducer,
       dogs: dogReducer
})

let store = createStore(rootReducer, composeEnhancers(applyMiddleware(thunk)))

ReactDOM.render(
  <React.StrictMode>
    <Provider store={store}>
      <App />
    </Provider>
  </React.StrictMode>,
  document.getElementById('root')
);
  

Ответ №1:

Функция map может использоваться только для массивов, а не для объектов.

Если вы используете console.log() props.mutts , вы увидите, что это ОБЪЕКТ.

Ответ №2:

Мне нужно было добавить редуктор в мои mapStateToProps, в файлы контейнера.

 const mapStateToProps = (state) => {
    return{
        cats: state.catReducer.cats
    }
}