2016-07-30 11 views
0

Ich habe derzeit ein Problem beim Rendern einer React Wrapper-Komponente in einer anderen Komponente. Im Grunde, ich export default die Wrapper-Komponente (CreatePage), und dann versuchen, es in eine andere Komponente importieren (EditPage), aber bekomme den Fehler "Kann nicht lesen Eigenschaft pageType von undefiniert." pageType ist eine Requisite für CreatePage, die ich definiere, aber das Seltsame ist, dass ich Debugger in den Renderfunktionen beider Komponenten habe und auch nicht getroffen wird, also denke ich, gibt es ein Problem mit der Komponente selbst, aber ich bin mir nicht sicher ganz was. Hier ist der Code aus dem EditPage für einige Kontext:Reaction-Komponente: kann Eigenschaft von undefiniertem Fehler nicht lesen

import React, { Component, PropTypes } from 'react'; 
import CreatePage from './CreatePage'; 
import withResource from '../../../../lib/withResource'; 


export class EditPage extends Component { 
    constructor(props){ 
     super(props); 
    } 

    render() { 
     debugger; 
     return (
      <div> 
       <CreatePage pageType={'edit'}/> 
      </div> 
     ); 
    } 
} 

export default withResource(
{ 
    name: 'EditResource', 
    key: 'hello', 
    }, 
EditPage); 

-Code für Create:

export default class CreatePage extends Component { 

    constructor(props) { 
     super(props); 
    } 

    headerTitles = { 
     'create': i18n._('Create', '[m10n]'), 
     'edit': i18n._('Edit', '[m10n]'), 
    } 

    renderHeader(pageType) { 
     return (
      <div className={cx('headerWrapper')}> 
       <div className={cx('header')}> 
        <div className={cx('title')}> 
         {this.headerTitles[pageType]} 
        </div> 
       </div> 
      </div> 
     ); 
    } 

    renderCreateEditPage(pageType) { 
     return (
      <div> 
       {this.renderHeader(pageType)} 
       <div className={cx('contentWrapper')}> 
        <div> 
         <NameTag type={'pageType'}/> 
        </div> 
       </div> 
      </div> 
     ); 
    } 

    render() { 
     return (
      <div className={cx('pageWrapper')}> 
       {this.renderCreateEditPage(this.props.options.pageType)} 
      </div> 
     ); 
    } 
} 
+0

Können Sie Code von CreatePage bereitstellen? – Yozi

+0

Sie haben es gerade zum Bearbeiten hinzugefügt. – user3802348

Antwort

2

Create sucht in this.props.options.pageType aber nur in direkt weitergegeben .. pagetype keine Erwähnung eines Options

prop
+1

Völlig übersehen dies! Es funktioniert jetzt, ich schätze es wirklich :) – user3802348