2015-11-05 23 views
1

我想要一個能夠查找某個React類類型的所有後代並將其傳遞給它的父組件。因此,考慮這樣的結構:如何將道具傳遞給某種類型的所有子孫

<Parent> 
    <div> 
    <em> 
     <GimmeProps /> 
    </em> 
    </div> 
    <GimmeProps /> 
</Parent> 

ParentcomponentDidMount方法將能夠找到所有的<GimmeProps>元素,並將它們設置爲這樣:

<GimmeProps magic={this.callback} /> 

我會怎麼做呢?我已經試過遞歸使用React.Children.forEach,但是我不能告訴React類的類型,我不認爲我可以這樣設置道具。

回答

1

我相信你要找的是context,而不是道具。上下文在許多方面都像道具一樣行事,但是它們是從一個組件傳遞給他們所有的子孫。

他們可以在裏面使用this.context.foo

這裏有一個博客帖子解釋如何使用道具兒童訪問: https://www.tildedave.com/2014/11/15/introduction-to-contexts-in-react-js.html

官方反應文檔背景: https://facebook.github.io/react/docs/context.html

+0

'context'是被風險棄用。我看到React開發人員之間的討論,他們都沒有真正喜歡這部分API。 – ffxsam

+0

@ffxsam,那麼有什麼選擇?有你自己的特殊'上下文'道具,每個圖層手動傳遞? –

+0

@ReneSaarsoo不知道替代是什麼,這就是我在這裏發佈的原因。我可以使用Flux架構,但我試圖保持這些組件100%純正的React。 – ffxsam

相關問題