2017-06-03 5 views
-1

Ich benutze die Starter-Vorlage von mern.io. Wenn ich versuche, den folgenden Code auszuführen erhalte ich die Fehlermeldung: "Reference: Requisiten ist nicht definiert"Warum sind Requisiten von Redux nicht definiert

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 (Der API-Aufruf funktioniert):

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); 
    }); 
    }} 
/> 

Antwort

0

Hier ist, wie das Debuggen funktioniert:

Es gibt zwei Orte, wo man die Variable props verwenden:

 <h3>{props.event.name}</h3> 

, was darauf hindeutet, dass Sie sollten EventDetailPage(...) unabhängig nennen testen (Komponententest), um zu überprüfen, ob diese Funktion ordnungsgemäß funktioniert, und

function mapStateToProps(state, props) { 
    return { 
    event: getEvent(state, props.params.id) 

, was, wenn es nicht funktioniert würde bedeuten, dass Redux API ist gebrochen - es ist nicht -, aber um sicherzustellen, dass Sie versuchen können, console.log(props) vor der Rückkehr.

Aus dem Code, den ich lesen kann, denke ich, dass es irgendwo fehlschlägt, die nicht in Ihre Schnipsel kopiert wird, aber da Sie nicht die vollständige Traceback (zumindest Datei und Zeilennummer) bereitstellen, ist es ziemlich schwierig zu wissen.

Verwandte Themen