[英]ReactJS - Passing props (state) to children of children
您可以執行此操作的唯一React方法是將狀態和道具從父級直接傳遞給子級。 如果孫子需要祖父母的狀態或道具,則父母必須保持向下傳遞狀態,直到到達孫子為止。 React是單向的; 從父母到孩子。
因此,在您的情況下,祖父母(主應用程序)將包含傳遞給子代的某些狀態(側邊欄和內容區域)。 例如,從父組件將狀態傳遞給孩子,如下所示:
<Sidebar someState={this.state.someParentState} />
<ContentArea someState={this.state.someParentState} />
當側邊欄中的狀態發生更改(在您的示例中為單擊)時,狀態將反映在祖父母(主應用程序)上。 由於同一狀態在多個組件(內容區域)之間共享,因此具有此狀態的每個組件都將被更新。
現在,如果您在想,“哇,如果有多個孩子,並且有孩子的孩子,這不會變得混亂嗎?”。 答案是:“可以,可以!” 這是狀態容器(Redux,Flux,MobX)進入的地方。這就是為什么要使用一個狀態容器的原因:
connect
和mapStateToProps
函數將部分狀態作為道具連接到單個組件即可。 考慮以下有關Redux(最受歡迎的狀態容器)的資源:
如果您以更復雜的方式處理狀態,則值得考慮使用Redux在整個應用程序中處理狀態。
這樣,您可以使用“連接”將狀態映射到道具,並根據需要在組件之間傳遞狀態。 在這里查看有關如何實現它的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.