-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。
您反覆渲染ID爲「comments」的元素,每個元素覆蓋最後一個元素。也許你想要的是一個'CommentList'組件? – univerio
['ReactDOM.render()'控制你傳入的容器節點的內容。裏面的任何現有的DOM元素在第一次被調用時被替換。稍後調用React的DOM差異算法進行有效更新。](https://facebook.github.io/react/docs/top-level-api.html#reactdom.render) – Kujira