2017-05-18 52 views
0

請幫助我瞭解我在做什麼錯誤,並建議如何解決此問題將不勝感激。我想創建上述努力解決當我嘗試創建元素時出現的警告

React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: object 

我的代碼中使用多年的陣列,但是我正在錯誤的材料下拉菜單低於

render(){ 
     const currentYear = (new Date()).getFullYear(); 

     const years = []; 
     for(let i = currentYear - 100; i < currentYear - 15; i++) 
      years.push(i); 
     years.map((year) => { 
      return React.createElement(<MenuItem/>) 
     }) 

     return(
      <div> 
       <p>Date Of Birth</p> 
       <DropDownMenu 
        value={this.state.year} 
        onChange={(e, i, value) => this.handleChange('year', value)}> 
        <MenuItem value={1} primaryText="Year" /> 
       </DropDownMenu> 

       <DropDownMenu 
        value={this.state.month} 
        onChange={(e, i, value) => this.handleChange('month', value)} 
       > 
        <MenuItem value={1} primaryText="Month" /> 
        <MenuItem value={this.state.month} primaryText={this.state.month}/> 
       </DropDownMenu> 

       <DropDownMenu 
        value={this.state.day} 
        onChange={(e, i, value) => this.handleChange('day', value)} 
       > 
        <MenuItem value={1} primaryText="Day" /> 
        <MenuItem key="day" value={this.state.day} primaryText={this.state.day} /> 
       </DropDownMenu> 
      </div> 
     ) 
    } 
} 

export default DateOfBirth 
+0

什麼是錯誤?您的問題沒有指定 – Colwin

+0

React.createElement:類型無效 - 預期爲字符串(對於內置組件)或類/函數(對於複合組件),但得到:對象 – Dumisani

+1

此行的用途是什麼? years.map((年)=> { 回報React.createElement() }) 它最有可能通過這引起了.. – JiN

回答

1

我相信你正在嘗試做一個日期輸入組件..看看只有一年的輸入在下拉的代碼。

const years = []; 
    for(let i = currentYear - 100; i < currentYear - 15; i++) { 
     years.push(
     <MenuItem value={i} key={i} primaryText={i} 
     ); 
    } 

    return(
     <div> 
      <p>Date Of Birth</p> 
      <DropDownMenu 
       value={this.state.year} 
       onChange={(e, i, value) => this.handleChange('year', 
      value)}> 
       {years} 
      </DropDownMenu> 
     </div> 
    ) 
    } 
    } 

    export default DateOfBirth; 
0

錯誤是由這一行造成的:

years.map((year) => { 
    return React.createElement(<MenuItem/>) 
}) 

沒有必要使用JSX語法時使用createElement,所以你可以在此行只更改爲:

years.map((year) => { 
    return <MenuItem/> 
}) 
相關問題