【发布时间】:2016-04-02 22:34:10
【问题描述】:
我正在尝试为在 React Native 中构建的 iOS 应用加载启动画面。我正在尝试通过类状态和 setTimeout 函数来完成此操作,如下所示:
class CowtanApp extends Component {
constructor(props){
super(props);
this.state = {
timePassed: false
};
}
render() {
setTimeout(function(){this.setState({timePassed: true})}, 1000);
if (!this.state.timePassed){
return <LoadingPage/>;
}else{
return (
<NavigatorIOS
style = {styles.container}
initialRoute = {{
component: LoginPage,
title: 'Sign In',
}}/>
);
}
}
}
加载页面工作了一秒钟,然后我猜当 setTimeout 尝试将状态更改为 true 时,我的程序崩溃:'未定义不是对象(评估 this.setState)'。我已经解决了几个小时,关于如何解决它的任何想法?
【问题讨论】:
-
检查您设备的时间是否与您计算机的时间一致!这发生在我身上,不幸的是花了很长时间
debugstackoverflow.com/questions/51163349/… -
出于某种原因,我只能看到
setTimeout在render方法中使用,这将为每个渲染创建一个新的超时......在render中创建副作用是一种反模式。其余的已经回答了
标签: javascript ios settimeout react-native