【问题标题】:TouchableHighlight onPress fires automatically on navigationTouchableHighlight onPress 在导航时自动触发
【发布时间】:2017-07-03 17:18:54
【问题描述】:

我的 react native 应用中有两个视图。我使用reactnavigtion 转到第二个视图。下面是那个代码。

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

                            </View>
    </TouchableHighlight>

以上代码工作正常。在第二个视图中,我添加了当用户点击它时在网络浏览器中打开的链接。

<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 中。

【问题讨论】:

    标签: android ios react-native navigation


    【解决方案1】:

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

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

    或定义使用该参数的方法

    <TouchableHighlight onPress={this.navigateToSomeURL}>
    

    【讨论】:

    • 太棒了。我不知道。非常感谢
    猜你喜欢
    • 2018-07-11
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多