Почему Touchable Opacity не работает на Android?

#android #react-native #touchableopacity

#Android #react-native #touchableopacity

Вопрос:

Осязаемая прозрачность отлично работает на IOS, но не работает на Android.

TouchableOpacity импортируется из react-native

Мой код :

     <View style = { styles.view}>
                         
            <TouchableOpacity style = {styles.button}  onPress={() => this.props.play}>
            <Text style = { styles.buttonText}>Play</Text>
            </TouchableOpacity>

            </View>

  

Моя таблица стилей:

 button:{
        backgroundColor : '#2F2440',
        padding : 10,
        borderRadius : 10,
        marginTop :  RFValue(305),
        marginLeft : RFValue(20),
        marginRight : RFValue(30),
        width : RFValue(200),
        height : RFValue(40),
        alignSelf : 'baseline',  
    },
  

Комментарии:

1. Что означает «не работает»? Нам нужно больше информации

2. Откуда вы импортируете TouchableOpacity ? react-native-gesture-handler или react-native ?

3. Что означает this.props.play вызов onpress ?! Я думаю, вам следует вызвать там функцию, чтобы проверить правильность работы вашей кнопки, добавить Console.log("test"); и проверить, вызвана она или нет.

4. Когда я касаюсь осязаемой непрозрачности, она просто не нажимается.

5. TouchableOpacity импортируется из react-native .

Ответ №1:

Вам нужно заменить onPress={() => this.props.play}

с onPress={() => this.props.play()} помощью или этого onPress={this.props.play}

Комментарии:

1. Хорошо, можете ли вы подтвердить, действительно ли this.props.play() работает, вызывая его снаружи, а не по щелчку или нажатию? Может быть, после установки компонента?

2. Кроме того, как было предложено @Meisam Saba, console.log что-нибудь печатает?

3. @Meisam Саба, консоль. журнал напечатал «тест».

4. тогда можете ли вы попробовать мое предложение вызвать this.props.play() в другом месте и посмотреть, действительно ли это работает?

5. Не могли бы вы подсказать, как это сделать?