Я использую стандартное ядро Net React-Reux, и когда я запускаю действие fetch api, состояние редуктора не меняется вообще.
Вот мое действие
import axios from "axios";
import config from '../config';
const ROOT_URL = config[process.env.NODE_ENV].api;
export const FETCH_EVENTS = "FETCH_EVENTS";
export function fetchEvents() {
const url = ROOT_URL +"/Event/GetAllEvents";
const request = axios.get(url);
return {
type: FETCH_EVENTS,
payload: request
};
}
мой редуктор индекса:
import { combineReducers} from 'redux';
import { routerReducer } from 'react-router-redux';
import dataReducer from './dataReducer'
const reducers = {
events: dataReducer
};
const rootReducer = combineReducers({
...reducers,
routing: routerReducer
});
export default rootReducer;
и мой редуктор:
import { FETCH_EVENTS } from "../actions/ExtractActions";
export default function (state = [], action) {
switch (action.type) {
case FETCH_EVENTS:
console.log("inside reducer")
return [action.payload, ...state];
}
return state;
}
Поэтому я добавляю этот кодв компоненте Home:
function mapDispatchToProps(dispatch) {
return bindActionCreators({ fetchEvents }, dispatch);
}
function mapStateToProps(state) {
return {
events: state.events
};
}
export default connect(mapStateToProps, mapDispatchToProps)(Home);
, но когда я пытаюсь запустить действие и посмотреть, изменилось ли состояние редуктора, я получаю в консольном журнале пустой массив для "this.props.events".Даже если я пытаюсь сохранить данные API в состояние, я даже попытался изменить метод редуктора и просто вернуть строку, но this.props.events снова возвращает пустой массив [].Я предполагаю, что мой редекс не работает, но я не знаю почему.Я отлаживал всю ночь
componentWillMount() {
this.props.fetchEvents()
console.log(this.props.events)
}