Я пытаюсь создать свое первое соединение между компонентом React и Redux для сбора данных из моего API-интерфейса узла.Как правильно подключить компонент ReactJS к Redux с помощью реакции-сокращения?
Это простой компонент на данный момент, но он будет расти в будущем и будет выводить подкомпоненты, которые позволят мне создать полный пользовательский интерфейс CRUD (список, редактировать, удалять, просматривать и т. Д.). В этом смысле мне нужно подключить функции действия к объекту this.props
, чтобы он мог быть наследован дочерними компонентами.
Вот мой код:
Компонент UserGrid - Сетка таблицы данных, которые будут загружать пользователи информации
import React from 'react';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import * as userActions from '../../actions/userActions';
class UserGrid extends React.Component {
componentWillMount() {
this.props.fetchUsers();
}
render() {
const mappedUsers = users.map(user => <li>{user.email}</li>);
return (
<div>
<ul>{mappedUsers}</ul>
</div>
);
}
}
function mapStateToProps(state) {
return {
users: state.users
}
}
export default connect(
mapStateToProps,
bindActionCreators(userActions, dispatch)
)(UserGrid);
Мои userAction
, что эффективно будет загружать пользователей из вызова AJAX:
import axios from "axios";
export function fetchUsers() {
return function(dispatch) {
axios.get("/api/users")
.then((response) => {
dispatch({type: "FETCH_USERS_FULFILLED", payload: response.data});
})
.catch((err) => {
dispatch({type: "FETCH_USERS_REJECTED", payload: err});
})
}
}
С помощью этого кода я получаю следующее ошибка:
Uncaught ReferenceError: dispatch is not defined
at Object.<anonymous> (bundle.js:37984)
at __webpack_require__ (bundle.js:556)
at fn (bundle.js:87)
at Object.<anonymous> (bundle.js:37711)
at __webpack_require__ (bundle.js:556)
at fn (bundle.js:87)
at Object.<anonymous> (bundle.js:8466)
at __webpack_require__ (bundle.js:556)
at fn (bundle.js:87)
at Object.<anonymous> (bundle.js:588)
(anonymous) @ bundle.js:37984
__webpack_require__ @ bundle.js:556
fn @ bundle.js:87
(anonymous) @ bundle.js:37711
__webpack_require__ @ bundle.js:556
fn @ bundle.js:87
(anonymous) @ bundle.js:8466
__webpack_require__ @ bundle.js:556
fn @ bundle.js:87
(anonymous) @ bundle.js:588
__webpack_require__ @ bundle.js:556
(anonymous) @ bundle.js:579
(anonymous) @ bundle.js:582
Каков правильный способ подключения моего компонента к созданным службам Redux?
Вы передаете 'dispatch' в качестве аргумента' bindActionCreators' но нигде не определено. –