मैं प्रतिक्रिया मूल में निर्मित आईओएस ऐप के लिए एक स्प्लैश स्क्रीन लोड करने का प्रयास कर रहा हूं। मैं कक्षा राज्यों के माध्यम से यह पूरा करने के तो इस प्रकार एक 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 सच करने के लिए राज्य को बदलने की कोशिश करता है लगता है, मेरे प्रोग्राम दुर्घटनाग्रस्त: 'अपरिभाषित एक वस्तु नहीं है (इस .setState का मूल्यांकन)'। मैं इसे कुछ घंटों तक चला रहा हूं, इसे ठीक करने के तरीके पर कोई विचार?
ठीक है, यह काम करता है - धन्यवाद! क्या आप संभवतः समझा सकते हैं कि यह प्रस्तुत करने में क्यों काम नहीं कर रहा था? – Phil
मुझे लगता है कि आप प्रस्तुत करने के तरीके में कोई भी निर्देश नहीं लिख सकते हैं। आप स्टार्टअप निर्देशों के लिए घटक WillMount या घटकDidMount फ़ंक्शन का उपयोग कर सकते हैं। – Phyo
यह एक स्कोपिंग मुद्दे के कारण काम नहीं कर रहा था। आपके मूल कोड में आपने सेटटाइनआउट (फ़ंक्शन() {था जो उस ब्लॉक में यह आपके घटक को किसी अन्य चीज़ से संदर्भित करता है। यहां जवाब का एक विकल्प केवल आपके सेटटाइमआउट कॉल को "ES2015 फैट एरो सिटैक्स" में बदलना होगा : setTimeout (() => this.setState ((...) – rmevans9