Я работаю над реактивно-редукционным приложением. Теперь я столкнулся с проблемой отправки акции. Следующий код не может отправить действие generateReport.
import React, { Component } from "react";
import { Button, Icon } from "semantic-ui-react";
import { connect } from "react-redux";
import { submit, getFormValues, isValid } from "redux-form";
import { generateReport } from "../actions/generateActions";
import { Link } from "react-router-dom";
const docsButtonStyle = {
position: "fixed",
marginBottom: "0.5em",
marginLeft: "0.1em",
bottom: 0,
left: 0,
animation: "back-to-docs 1.5s ease-in-out infinite",
zIndex: 6
};
class ButtonGroup extends Component {
generate = () => {
this.props.generateReport(this.props.values);
};
render() {
return (
<div style={docsButtonStyle}>
<Button.Group vertical>
<Button animated="fade" color="teal" onClick={this.generate}>
<Button.Content hidden>Generate</Button.Content>
<Button.Content visible>
<Icon name="chart bar" size="large" />
</Button.Content>
</Button>
</Button.Group>
</div>
);
}
}
const mapStateToProps = state => ({
values: getFormValues("privateForm")(state),
valid: isValid("privateForm")(state)
});
const mapDispatchToProps = dispatch => ({
generateReport,
remoteSubmit: () => {
dispatch(submit("privateForm"));
}
});
export default connect(
mapStateToProps,
mapDispatchToProps
)(ButtonGroup);
generateActions.js
export const generateReport = values => async dispatch => {
console.log("test");
try {
dispatch(generateReportBegin());
const response = await axios.post(`${ROOT_URL}/submit`, values);
dispatch(generateReportSuccess());
} catch (error) {
}
};
Если я поменяю функцию подключения на
export default connect(
mapStateToProps,
{generateReport}
)(ButtonGroup);
Это работает. Может кто-нибудь сказать мне, почему это не работает в первой ситуации? Благодаря.