-1
我使用mern.io的入門模板。 當我嘗試運行下面的代碼我得到的錯誤: 「的ReferenceError:道具沒有定義」爲什麼從Redux中獲取的道具沒有定義
EventDetailPage.js:
import React, {PropTypes} from 'react';
import {connect} from 'react-redux';
// Import Actions
import {fetchEvent} from '../../EventActions';
// Import Selectors
import {getEvent} from '../../EventReducer';
function EventDetailPage(props) {
return (
<div>
<h3>{props.event.name}</h3>
</div>
// null
);
}
// Actions required to provide data for this component to render in server side.
EventDetailPage.need = [params => {
return fetchEvent(params.id);
}
];
// Retrieve data from store as props
function mapStateToProps(state, props) {
return {
event: getEvent(state, props.params.id)
};
}
export default connect(mapStateToProps)(EventDetailPage);
fetchEvent(API調用工作):
export function fetchEvent(id) {
return (dispatch) => {
return callApi(`events/${id}`).then(res => dispatch(addEvent(res.event)));
};
}
getEvent:
export const getEvent = (state, id) => state.events.data.filter(event => event.id === id)[0];
routes.js:
<Route
path="/events/:name-:id"
getComponent={(nextState, cb) => {
require.ensure([], require => {
cb(null, require('./modules/Event/pages/EventDetailPage/EventDetailPage').default);
});
}}
/>