2017-04-01 196 views
0

我正在尋找所有網絡,但是我找不到任何解決方案,也許是因爲我對React-Native Universe更新。React-Native父節點更改子節點值

那麼,我的問題是關於孩子的節點父變化值。

我的情況是,我有一個數據控制器和這個數據控制器監聽事件中的數據,當事件發生時它需要更新像Slider這樣的組件。

渲染需要。

<DataListener url={this.state.service_url}> 
    <Slider style={this.styles.slider_component}/> 
</DataListener> 

我需要了解的週期獲得一個默認SliderClass DataListener。在構造函數中使用道具嗎?我怎樣才能進去DataListener滑塊和改變像this.default_slider.value = 0.4

感謝提前 維克多Ç馬龍

回答

0

這個值應該值傳遞下來的道具,然後你的滑塊組件可以適當地處理它。當然,DataListener必須首先獲取這個值,而且你已經詳細說明了讓我們假設它處於狀態(當你更新狀態時(通過this.setState(newState)),它將導致DataListener的重新渲染,又與新的屬性)重新呈現滑塊:

<DataListener url={this.state.service_url}> 
    <Slider style={this.styles.slider_component} value={this.state.value}/> 
</DataListener> 

您參考,然後會像

onEvent(e) { 
    this.setState({value: e.value}); 
} 
+0

感謝有關循環的解釋數據控制事件。但是我想知道,DataListener如何操作Slider?還是不可能做到這一點? – ViTUu

+0

這不完全不可能,只是不是真正的React做事的方式。首先一個組件不能直接影響另一個組件,但它可以調用另一個組件的方法(或者按照我原來的答案傳遞它通常更有意義的道具)。如果該組件是一個子組件,那麼最簡單的方法是通過ref:https://facebook.github.io/react/docs/refs-and-the-dom.html。爲了影響子組件,子組件需要包含一個方法,並且父組件會通過ref調用該組件。 –

+0

我已經添加了一個簡單的處理程序來顯示如何通過狀態觸發更新 - 它是React設計的工作方式,更有可能成爲您最終想做的事情 –

相關問題