React native 如何在函数中使用react native的setTimeout?

React native 如何在函数中使用react native的setTimeout?,react-native,expo,React Native,Expo,我想使用“setTimeout”来响应本机应用程序,但我不知道为什么会出现setTimeout不是函数之类的错误 当然,我从react native导入了setTimeout 下面是我的代码 import { setTimeout } from 'react-native'; handleBarCodeScanned = ({ data }) => if (data !== this.state.lastScannedUrl) { this.setState({ lastScann

我想使用“setTimeout”来响应本机应用程序,但我不知道为什么会出现setTimeout不是函数之类的错误

当然,我从react native导入了setTimeout

下面是我的代码

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;
}
}


有人能帮帮我吗?

setTimeout
是JavaScript的默认函数,比如
alert
您不必从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('予期せぬ障害が発生しました。前画面に戻って再度お試しください');
    }
是来自JavaScript的函数,而不是其本机组件。因此,如果您试图从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('予期せぬ障害が発生しました。前画面に戻って再度お試しください');
    }