this.props.onFetchEventDetail不是React js中的函数

时间:2019-01-29 10:04:13

标签: javascript reactjs

'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);

0 个答案:

没有答案