2015-05-23 132 views
0

我頁面上的一些帖子,[想象這],我需要在每個那些帖子的底部添加我的,就像Facebook的,渲染反應組分多次

但我怎麼能這樣做呢?

React.renderComponent(<CommentForm />,document.getElementById('someId')); 

是什麼反應教程說..

我必須通過所有的職位,以迭代並追加到?

$.each($('.post .commentArea', function(key, elem) { 
    React.renderComponent(<CommentForm />, elem); 
}) 

如果我喜歡這樣嗎?當頁面上有新帖子時,如何裝載CommentForm?

+0

我希望我已經理解了你的要求。你試圖將你的'CommentForm'組件附加到每個帖子? 你是否也將自己的帖子添加爲反應組件?如果是這樣,你可以很容易地嵌套你的'CommentForm': 'return bla ;' 如果不是,爲什麼你要添加反應組件到現有的HTML? – Johann

+0

所以這是問題,我需要使用PHP後端呈現當前帖子,所以然後它將是搜索引擎優化友好,我也需要反應js功能只是對他們的意見,因爲評論將不可用於搜索引擎優化, ,我有道理嗎?我很抱歉,如果我不 – Sahan

+0

@Johann https://jsfiddle.net/69z2wepo/8900/這正是我所需要的,但這不起作用:( – Sahan

回答

1

@ user3656084,這個fiddle將工作。

var CommentForm = React.createClass({ 
    render: function() { 
     return <div>{this.props.content}</div>; 
    } 
}); 

$(document).ready(function() { 
    jQuery.each($('.post .commentForm'), function(key, elem) { 
     console.log(elem) 
     React.render(<CommentForm content="Bla" />, elem); 
    }); 
}); 
+0

我的男人,完美的工作,非常感謝:)現在我需要建立在此之上 – Sahan

0

基本上它正在偵聽一個數組,在這種情況下,我們說這是一個帖子列表。

一旦列表在商店中發生變化,該視圖將獲得相應的事件並更新UI。像這樣的東西應該做渲染工作。

renderList() { 
    return _.map(this.state.lists, (list) => { 
    return (
     <div> 
     <div> list.title </div> 
     <div> list.body </div> 
     </div> 
    ) 
    }) 
} 

render() { 
    return (
    <div> 
     <header /> 
     {this.renderList()} 
     <footer /> 
    </div> 
) 
} 
+0

對不起,我不這樣做我解釋得很對,https://jsfiddle.net/69z2wepo/8895 /如果你看到這篇文章,我有post div和commentForm類應該呈現的 Sahan

+0

https://jsfiddle.net/69z2wepo/8900/這就是我需要的東西,這個小提琴不工作:( – Sahan