2017-01-23 34 views
0

试图找出如何做到这一点。我有一个组件,它具有我想通过使用外部TouchableHighlight触发的功能。我知道,必须听起来像一个奇怪的问题...TouchableHighlight组件?

这里是有点我的意思:

<TouchableHighlight onPress={this.function.bind(this)}> 
    <Component onPress={ somehow inherit on press} /> 
</TouchableHighlight> 

我想这样做,这样是有其他因素我想在可触摸亮点的原因..所以我不能只是添加到组件。我可以添加道具到组件,所以我试图弄清楚如何添加funcs并以此触发它

任何想法?谢谢

+0

你想整个事情都是可点击的,每个孩子都有不同的onpress功能吗?或者你只是想要一个可点击组件的容器? –

+0

我将要做的唯一事情就是在该组件中的图片和图像..所以我希望整个事情有一个可点击的效果,只有组件继承onpress效果..如果这是有道理的 –

+0

噢好吧我想我明白你的意思,基本上当你点击你想要onPress的整个事情时,你可以调用你在Component里面的函数? –

回答

0

有不同的方法可以做到这一点,但我认为最简单的方法是使用refs

someFunction =() => { 
    this.comp.watever() //whatever function you have inside Component that you want to invoke 
} 

<TouchableHighlight onPress={this.someFunction.bind(this)}> 
    <Component ref={(comp) => this.comp = comp} /> 
</TouchableHighlight> 
+0

打算发表相同的建议,但我认为OP意味着它相反。所以为了补充这一点,如果你想访问TouchableHighlight的onPress,可以通过在TouchableHighlight上加一个ref来完成,然后让子组件通过this.touchableRef.props.onPress来访问它。有关示例实现,请参见[本草图](https://snack.expo.io/rk0XqoiTe)。 –

相关问题