React Native Button onPress дважды запускает на устройстве iOS, но не на Android - PullRequest
0 голосов
/ 22 сентября 2019

Когда я нажимаю кнопку в своем приложении на устройстве iOS, вывод моей консоли показывает следующее:

2019-09-22 13: 45: 25.116 [info] [tid: com.facebook.react.JavaScript] Вы нажали кнопку

2019-09-22 13: 45: 25.116323-0400 AwesomeProject [5368: 2651835] Вы нажали кнопку

Я регистрирую «Вы нажали кнопку», чтобыконсоль внутри функции onPressButton, и она вызывается дважды при каждом нажатии кнопки.

Вот мой полный файл App.js, точная копия которого: https://facebook.github.io/react-native/docs/handling-touches:

import React, { Component } from 'react';
import { Button, StyleSheet, View } from 'react-native';

export default class ButtonBasics extends Component {
  _onPressButton() {
    console.log('You tapped the button once!')
    alert('You tapped the button!')
  }

  render() {
    return (
      <View style={styles.container}>
          <View style={styles.buttonContainer}>
           <Button
             onPress={this._onPressButton}
             title="Press Me"
            />
         </View>
        <View style={styles.buttonContainer}>
          <Button
             onPress={this._onPressButton}
            title="Press Me"
            color="#841584"
           />
         </View>
        <View style={styles.alternativeLayoutButtonContainer}>
           <Button
            onPress={this._onPressButton}
            title="This looks great!"
           />
           <Button
            onPress={this._onPressButton}
            title="OK!"
            color="#841584"
           />
        </View>
       </View>
     );
   }
}

 const styles = StyleSheet.create({
   container: {
   flex: 1,
   justifyContent: 'center',
  },
  buttonContainer: {
     margin: 20
   },
   alternativeLayoutButtonContainer: {
    margin: 20,
    flexDirection: 'row',
    justifyContent: 'space-between'
   }
 });

Я действительно в растерянности, почему onPressButton дважды запускается на iOS, но не на Android.

1 Ответ

2 голосов
/ 23 сентября 2019

Попробуйте с функцией стрелки

Пример: -

onPress = {() => this.onPressButton()} //in Button

onPressButton = () => {                //onPressButton function
 console.log('You tapped the button');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...