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