2016-07-30 82 views
0

我目前在另一個組件中渲染React包裝器組件時出現問題。基本上,我包裝組件(CreatePage),然後嘗試將其導入到另一個組件(EditPage),但出現錯誤「無法讀取未定義的屬性pageType」。 pageType是我定義的CreatePage的道具,但奇怪的是我在這兩個組件的渲染函數中都有調試器,並且都沒有被擊中,所以我認爲由於某種原因組件本身存在問題,但我不確定完全是什麼。下面是從EditPage代碼的一些背景:React組件:無法讀取未定義錯誤的屬性

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

代碼CreatePage:

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

你能提供CreatePage的代碼嗎? – Yozi

+0

只需將其添加到帖子中作爲編輯。 – user3802348

回答

2

CreatePage正在尋找在this.props.options.pageType但你只是在pageType爲何直接傳遞..沒有一個選項提及託

+1

完全忽略了這個!它正在工作,我真的很感激它:) – user3802348

相關問題