#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, вы получите сообщение об ошибке.