При использовании компонента с состоянием (класс, наследуемый от React.Component или PureComponent), вы не можете использовать хук UseDispatch или любые хуки.
Как сказал Дюпокас, хуки доступны только в функциональных компонентах.
Вместо этого вам необходимо подключить компонент к хранилищу с резервированием с помощью утилиты connect
из react-redux
:
import { connect } from 'react-redux';
import { submitData } from "../state/actions";
class FormComponent extends Component {
constructor(props) {
super(props);
this.state = {
fields: {},
errors: {}
};
}
submitForm = e => {
const { dispatchSubmitData } = this.props;
e.preventDefault();
if (this.validateForm()) {
dispatchSubmitData(this.state.fields);
}
};
}
const mapStateToProps = null;
function mapDispatchToProps(dispatch) {
return {
dispatchSubmitData: (...args) => dispatch(submitData(...args))
};
}
export connect(mapStateToProps, mapDispatchToProps)(FormComponent);
документация для mapStateToProps