'onFetchEventDetail'函数不能在componentDidMount上调用,这表明this.props.onFetchEventDetail不是函数。我为此功能做了动作,减速器,选择器和传奇,我所需要的只是触发该功能。代码如下:
import React, {Component} from 'react';
import {compose} from "redux";
import './EventDetailPage.css';
import PropTypes from 'prop-types';
import {requestEventDetail} from "./actions";
import {makeSelectEventDetail} from "./selectors";
import {createStructuredSelector} from "reselect";
import reducer from "./reducer";
import saga from "./saga";
import {connect} from "react-redux";
import injectReducer from "utils/injectReducer";
import injectSaga from "utils/injectSaga";
export class EventDetail extends Component {
constructor(props) {
super(props);
}
componentDidMount() {
console.log("eventdetail:::" + this.props.match.params.eventId);
this.props.onFetchEventDetail();
}
render() {
return (
<div>
...
</div>
);
}
}
EventDetail.propTypes = {
eventId: PropTypes.string,
onLoadFetchEventDetail: PropTypes.func,
};
export function mapDispatchToProps(dispatch) {
return {
onFetchEventDetail: evt =>
dispatch(requestEventDetail())
}
}
const mapStateToProps = createStructuredSelector({
eventDetail: makeSelectEventDetail()
});
const withConnect = connect(
mapStateToProps,
mapDispatchToProps
);
const withReducer = injectReducer({key: "eventDetailPage", reducer});
const withSaga = injectSaga({key: "eventDetailPage", saga});
export default compose(
withReducer,
withSaga,
withConnect
)(EventDetail);