当按打开另一个屏幕时,React Native Touchable Highlight没有行为



感谢您的阅读,我是React Native的初学者,我在此网站上找到了类似的问题标题,但我的问题与此不同。

我使用TouchableHighlight按下打开新屏幕,我已经成功了。但是按钮没有改变颜色。那是正常的吗?

我有一些尝试:

  • 我尝试使用可触摸的权利:该按钮将更改它不透明度,然后打开新屏幕
  • 我还尝试使用touchablenativeFeptBack:该按钮的行为正常,当我第二次点击时,除非我有很长的按下行为。
  • 当我使用按钮做其他事情,而不是打开新屏幕时,它的行为正确。

这是我的代码:

import React from 'react';
import {
  StyleSheet,
  Text,
  View,
  Image,
  TouchableHighlight,
} from 'react-native';
import MyInfoOrder from './MyInfoOrder';
export default class MyInfo extends React.Component{
    _onPress(){
        console.log("tap");
    }
    _onPressMessage(){
        const { navigator } = this.props;
        if(navigator) {
            navigator.push({
                name: 'order',
                component: MyInfoOrder,
            })
        }
    }
    render(){
        return(
            <View style={styles.btnGroup}>
                        <TouchableHighlight style={[styles.btnItem]} onPress={this._onPressMessage.bind(this)}>
                            <View style={styles.btnItemView}>
                                <Image source={require('../images/myinfo/message.png')} style={styles.btnItemViewImage} />
                                <Text style={styles.btnItemViewText}>MyTest</Text>
                                <Image source={require('../images/more.png')} style={styles.btnItemViewArrow} />
                            </View>
                        </TouchableHighlight>
                        <View style={styles.lineStyle}></View>
                        <TouchableHighlight style={[styles.btnItem]} onPress={this._onPress}>
                            <View style={styles.btnItemView}>
                                <Image source={require('../images/myinfo/friends.png')} style={styles.btnItemViewImage} />
                                <Text style={styles.btnItemViewText}>MyTest</Text>
                                <Image source={require('../images/more.png')} style={styles.btnItemViewArrow} />
                            </View>
                        </TouchableHighlight>
                        <View style={styles.lineStyle}></View>
                        <TouchableHighlight style={[styles.btnItem]} onPress={this._onPress}>
                            <View style={styles.btnItemView}>
                                <Image source={require('../images/myinfo/col.png')} style={styles.btnItemViewImage} />
                                <Text style={styles.btnItemViewText}>MyTest</Text>
                                <Image source={require('../images/more.png')} style={styles.btnItemViewArrow} />
                            </View>
                        </TouchableHighlight>
                    </View>
        )
    }
}
const styles = StyleSheet.create({
    
    btnGroup:{
        marginBottom:30,
        borderRadius:10,
        backgroundColor:'#FFFFFF',
    },
    btnItem:{
        height:104,
        borderRadius:10,
    },
    btnItemView:{
        borderRadius:10,
        backgroundColor:'#FFFFFF',
        height:106,
        flexDirection:'row',
        alignItems:'center',
    },
    btnItemViewImage:{
        width:48,
        height:48,
        marginLeft:24,
        marginRight:24
    },
    btnItemViewText:{
        flex:1,
        fontSize:32,
        color:'#333333',
    },
    btnItemViewArrow:{
        width:30,
        height:30,
        marginRight:30
    },
    
})

我使用:"反应":" 15.4.2","反应本":" 0.41.2",平台:Android 6.0

在touchableHighlight中调整" delaypressin" prop to 0,一切都按预期工作。

如果要在按下时更改touchableHighlight的颜色,则需要添加 UnderlayColor 在Props

相关内容

  • 没有找到相关文章

最新更新