2017-03-22 86 views
0

我試圖用另一個組件複製React組件。用React組件重複HTML部件

我的組件來重複部分

class RepeatHtml extends React.Component { 
render() { 
    var names = new Array(parseInt(this.props.number)).fill().map((_, i) => i); 
    var namesList = names.map(function (name, index) { 
     return (
      <li>{index + 1}</li>); 
    }); 
    return <ul>{ namesList }</ul> 
    } 
} 

我想重複我的選擇與另一個組件,如

<RepeatHtml number="5" child="<InputElement />" /> 

是否有可能如何?

+1

您正在將數字作爲道具發送到RepeatHTML,您可以在for循環中做到這一點,並根據需要重複多次 – Nicholas

+0

是的,但我的目的是使用此RepeatHtml組件和任意數量(1,2 ,3,4等)。 –

回答

0
<Repeat num={ num } component={ InputElement } /> 

const Repeat = ({ num, component as Component }) => (
    <ul> 
    { 
     ... 
     names.map(name => (
     <li key={ uniqueKey }> 
      <Component /> 
     </li> 
    ) 
    } 
    </ul> 
) 

您將組件作爲道具傳遞,不使用JSX。然後在你的地圖中,將其渲染爲JSX。