我正在尝试创建一个应用程序,其中SplashScreen显示600毫秒,然后显示主屏幕。我在componentDidmount中使用了setTimeOut方法,但是我收到的错误如here所示。下面还提供了必要的代码。
import React, { Component } from 'react';
import {Image,Dimensions, Button, Text, StyleSheet, View, TouchableOpacity} from 'react-native';
var timePassed;
class SplashScreen extends Component{
constructor(props){
super(props);
this.state={
timePassed: false
}
}
componentDidMount() {
this.setTimeout( () => {
this.setState({timePassed: true})
},600);
}
render(){
if(!this.state.timePassed){
return(
<View style={styles.container}>
<Image style={styles.logo} source={require('./Images/logo.jpg')} resizeMode="contain" />
<Text style={styles.deadlineFont}>Deadline</Text>
</View>
);
}
else{
return (
<View>
<MainScreen />
</View>
);
}
}
}
答案 0 :(得分:2)
问题:使用setTimeout
错误地调用了this
,但这不是您班上定义的方法。
解决方案:将this.setTimeout( () => {
更改为setTimeout( () => {
。
以下是您的代码的实际示例:https://repl.it/Iqfk/1