TouchableHighlight onPress在导航时自动触发

时间:2017-07-03 17:18:54

标签: android ios react-native navigation

我在本机应用程序中有两个视图。并使用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中都有发生。

1 个答案:

答案 0 :(得分:3)

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

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

或定义使用该参数的方法

<TouchableHighlight onPress={this.navigateToSomeURL}>