android - TouchableHighlight onPress 在导航时自动触发

标签 android ios react-native navigation

我的 React native 应用程序中有两个 View 。我正在使用 reactnavigtion 转到第二个 View 。下面是该代码。

 <TouchableHighlight onPress={() => navigate('Detail', { title: 'Text' })}>
                            <View style={styles.box} >

                            </View>
    </TouchableHighlight>

以上代码运行良好。在第二个 View 中,我添加了链接以在用户点击它时在网络浏览器中打开。

<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));
        }

问题是当我点击转到第二个 View 时。它也会自动触发第二个 View _onPressButton 函数。这在 iOS 和 Android 中都发生了。

最佳答案

您使用的语法将在每次渲染时调用该函数,这就是它立即触发的原因。您必须将其放入匿名函数或为其创建一个方法。

<TouchableHighlight onPress={() => this._onPressButton('http://www.someurl.com')}>

或者定义一个使用该参数的方法

<TouchableHighlight onPress={this.navigateToSomeURL}>

关于android - TouchableHighlight onPress 在导航时自动触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44891017/

相关文章:

javascript - React Native 图像不可见

android - default.realm 文件不显示在 chrome 浏览器中

android - 如何阻止发送方拆除接收方以便其他发送方可以继续转换?

android - Kotlin 内联关键字导致 IntelliJ IDEA 覆盖率报告 0%

ios - 在 iOS 中的文件夹 OneDrive 中创建文件夹

Iphone 将 url 标记为不安全

react-native - 在 Android 上响应 native 异步存储限制

java - 无法在Android Studio中运行任何JAVA模块

android - 如何在没有颜色资源的情况下更改 SwipeRefreshLayout 进度背景颜色?

ios - UIAlertController 如何在 obj c 中添加标签值