2017-06-18 72 views
0

我想做一个应用程序,其中的飞溅显示为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> 
); 
} 
} 
    } 

回答

1

问题setTimeout被错误地称为与this,但不是在你的类中定义的方法。

解决方案:将this.setTimeout(() => {更改为setTimeout(() => {

下面是您的代码的一个工作示例:https://repl.it/Iqfk/1

+0

感谢您的工作! :) –

相关问题