我做了一個測試,在的子組件中做了一個測試,並將一個道具傳給它。該應用程序的結構是這樣的:Reactjs:在主範圍之外改變道具
<App>
<Child />
</App>
然後在<Child />
,我呈現<Outside />
組件與另一React.render()
。當我在Chrome檢查陣營螢火中,App結構是:
<App>
<Child />
</App>
<Outside />
代替:
<App>
<Child />
<Outside />
</App>
然而,從<App />
傳遞{selected : true }
狀態時,它顯示以及在<Outside />
一個支柱,但是當我在<App />
中對{ selected : false }
進行狀態更改時,<Child />
和<Outside />
都不會收到更新後的道具。我認爲這是因爲<Outside />
不在<App />
範圍之內,所以數據流不流暢。 (對不起,我的英語)
您可以檢查這裏的測試:http://jsbin.com/yazaqo/1/edit?js,console,output
我想要問的是:是否有任何其他的方式來更新組件是外的應用範圍是什麼?
爲什麼不將新值傳遞給調用'Outside'上的'render'的代碼?你需要觸發第二棵樹的重新渲染。 – WiredPrairie
@WiredPrairie React.render( ,div);我如何設想通過新的價值?這是通過它的選擇= {this.props.selected} –