Вот код моего компонента UserHandler
import React, { Component } from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import * as actionCreators from '../../store/actions/actions';
class UserHandler extends Component {
componentDidMount() {
const { onInitUsers } = this.props;
onInitUsers();
}
render() {
// some code
return (
{/* SOME JSX */}
);
}
}
const mapStateToProps = state => ({
// state to props mapping
});
const mapDispatchToProps = dispatch => ({
onUserEdition: username => dispatch(actionCreators.editUser(username)),
onUserSelection: username => dispatch(actionCreators.fetchSelectedUser(username)),
onInitUsers: () => dispatch(actionCreators.initUsers()),
});
// PropTypes definition and defaultProps
export default connect(mapStateToProps, mapDispatchToProps)(UserHandler);
И в моем actionCreators
файле вот что я определил:
const initUsersStart = createAction(INIT_USERS_START);
const setUsers = createAction(SET_USERS, users => ({ users }));
const initUsersError = createAction(INIT_USERS_ERROR, error => ({ error }));
const initUsers = () => (dispatch) => {
dispatch(initUsersStart());
return axios.get('/users')
.then(
response => dispatch(setUsers(response.data)),
)
.catch(
error => dispatch(initUsersError(error)),
);
};
Когда я комментирую вызов onInitUsers();
в функции componentDidMount()
, у меня больше нет ошибки. Я хочу понять, почему возникает эта ошибка.
Наконец, вот как я создаю свой store
:
import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter } from 'react-router-dom';
import { createStore, applyMiddleware } from 'redux';
import { Provider } from 'react-redux';
import thunk from 'redux-thunk';
import App from './App';
import registerServiceWorker from './registerServiceWorker';
import '../node_modules/bootstrap/dist/css/bootstrap.min.css';
import reducer from './store/reducers/reducers';
const store = createStore(
reducer, /* preloadedState, */
applyMiddleware(thunk),
/* eslint-disable no-undef */ /* eslint-disable no-underscore-dangle */
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__(),
/* eslint-enable */
);
// const store = createStore(reducer);
ReactDOM.render(
<Provider store={store}>
<BrowserRouter>
<App />
</BrowserRouter>
</Provider>,
/* eslint-disable no-undef */
document.getElementById('root'),
/* eslint-enable */
);
registerServiceWorker();
Пожалуйста, обратите внимание, что я провел некоторое исследование прежде, чтобы выяснить, что может быть основной причиной такой ошибки, и кажется, что она может быть вызвана несколькими причинами. Я проверил найденные, но это не помогло.