訪問方法,我有收到孩子,使這些兒童對兒童
component = React.createClass({
...some JSX
{this.props.children}
...some JSX
)}
在某些時候,我需要各地的孩子們循環,並呼籲它們公開的方法的組成部分。但是,孩子不是對象實例,而是React表示。
在本質上我想要做這樣的事情:
var children = this.props.children
React.Children.forEach(children, function(child) {
child.someAction()
})
什麼是實現這一目標的最佳途徑?
我在IRC上遇到過一種方法,它涉及克隆孩子,然後通過參考來訪問他們。雖然看起來有些複雜。
// in JSX
{
newChildren = React.Children.map(children, function(child) {
return React.CloneElement(child, {ref: child.ref})
})
}
然後做
childRefs = this.props.children.map(function(child) {
return child.ref
})
var self = this;
childRefs.forEach(function(ref){
self.refs[ref].someAction()
})
雖然,這種感覺就像我的工作對反應。
這是調用由父組件一些事件觸發,還是應該在孩子的一些點被稱爲組件的生命週期(例如渲染之前,渲染之後)? – Mark
也許孩子們應該聽聽道具變化。在渲染孩子後,父母應該改變他們的道具,觸發他們的方法發射。 –
@Mark我正在試圖找出一個父母在孩子身上調用方法的正確方法。 – BezR