我的本机应用程序中有两个视图。我使用reactnavigtion
转到第二个视图。下面是该代码。
<TouchableHighlight onPress={() => navigate('Detail', { title: 'Text' })}>
<View style={styles.box} >
</View>
</TouchableHighlight>
以上代码可以正常工作。在第二个视图中,我添加了链接,以便在用户点击它时在Web浏览器中打开。
<TouchableHighlight onPress={this._onPressButton('http://www.someurl.com')}>
<View style={styles.box} >
</View>
</TouchableHighlight>
接下来是方法。
_onPressButton(url){
const uri = url;
Linking.openURL(uri).catch(err => console.error('An error occurred', err));
}
问题是当我单击转到第二视图时。它也会自动触发第二个视图
_onPressButton
函数。这发生在iOS和Android中。 最佳答案
您使用的语法将在每个渲染器上调用该函数,这就是为什么它立即触发的原因。您必须将其放入匿名函数或为其创建方法。
<TouchableHighlight onPress={() => this._onPressButton('http://www.someurl.com')}>
或定义使用该参数的方法
<TouchableHighlight onPress={this.navigateToSomeURL}>