Как использовать setTimeout из react-native внутри функции?

#react-native #expo

#react-native #expo

Вопрос:

Я хотел бы использовать «setTimeout» для приложения react native, но я не знаю, почему я могу получить сообщение об ошибке, например, setTimeout не является функцией.

Конечно, я импортировал setTimeout из react-native.

Это мой код ниже

 import { setTimeout } from 'react-native';

handleBarCodeScanned = ({ data }) => 
if (data !== this.state.lastScannedUrl) {
  this.setState({ lastScannedUrl: data });
  setTimeout(() => {this.checkQrUrl(data);}, 2000 )
} else if (data === this.state.lastScannedUrl) {
  return;
}
 

}

 checkQrUrl(data) {
if (data === this.state.UniqueQrUrl) {
  this.props.onPress();
  // Alert.alert(`このQR(${data})は、登録されているQR(${this.state.UniqueQrUrl})と同じです`);
} else if (data !== this.state.UniqueQrUrl) {
  Alert.alert('QRコードが違います');
} else {
  Alert.alert('予期せぬ障害が発生しました。前画面に戻って再度お試しください');
}
 

Кто-нибудь может мне помочь, пожалуйста?

Ответ №1:

setTimeout это функция по умолчанию из JavaScript, как будто alert вам не нужно явно импортировать ее из react-native.

удалите этот импорт, и он будет работать нормально.

Ответ №2:

Удалите нижеприведенный импорт из вашего кода:

 //    import { setTimeout } from 'react-native';


    handleBarCodeScanned = ({ data }) => 
    if (data !== this.state.lastScannedUrl) {
      this.setState({ lastScannedUrl: data });
      setTimeout(() => {this.checkQrUrl(data);}, 2000 )
    } else if (data === this.state.lastScannedUrl) {
      return;
    }
    }

    checkQrUrl(data) {
    if (data === this.state.UniqueQrUrl) {
      this.props.onPress();
      // Alert.alert(`このQR(${data})は、登録されているQR(${this.state.UniqueQrUrl})と同じです`);
    } else if (data !== this.state.UniqueQrUrl) {
      Alert.alert('QRコードが違います');
    } else {
      Alert.alert('予期せぬ障害が発生しました。前画面に戻って再度お試しください');
    }
 

setTimeout — это функция из JavaScript, а не компонент react-native. Итак, если вы попытались импортировать из react-native, вы получите сообщение об ошибке.