2017-04-01 191 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设计的工作方式,更有可能成为您最终想做的事情 –

相关问题