2016-06-13 95 views
-1

我有一個簡單的函數,它接受無限數量的字符串並呈現Comment元素。但是,這裏僅顯示最後一個組件。這裏的功能:只有最後一個React元素在循環中呈現

function renderComments(...comments) { 
    for(let i = 0; i<comments.length; i++) { 
     ReactDOM.render(<Comment/>, document.getElementById('comments')).setState({name: comments[i]}); 
    } 
} 

這裏的註釋組件:

class Comment extends React.Component { 
    constructor() { 
     super(); 
     this.state = { 
      name: 'default' 
     }; 
    } 
    render() { 
     return(
      <div> 

      {this.state.name}. 

      </div> 
     ); 
    } 
} 

在這裏,我調用該函數:

renderComments('hi', 'hello', 'whatever'); 

很抱歉,如果這是一個noob問題,我剛剛進入React。

+3

您反覆渲染ID爲「comments」的元素,每個元素覆蓋最後一個元素。也許你想要的是一個'CommentList'組件? – univerio

+1

['ReactDOM.render()'控制你傳入的容器節點的內容。裏面的任何現有的DOM元素在第一次被調用時被替換。稍後調用React的DOM差異算法進行有效更新。](https://facebook.github.io/react/docs/top-level-api.html#reactdom.render) – Kujira

回答

相關問題