2017-03-21 3 views
1

Hier ist mein Codereagieren nativen setState in setInterval(), dann setInterval führt eine Fehler

componentDidMount() { 
    let that = this; 
    setInterval(() => { 
     that.setState({number: 1}); 
    }, 2000); 
} 

I 'let that = this;' writen haben, aber es ist auch Fehler. In 2 Sekunden wird es mehr als einmal ausgeführt.

+0

Sie 'dass' initiieren aber verwenden' self' int der Intervallfunktion –

+0

Was der Fehler ist ?? Was versuchst du zu erreichen? –

+0

Tut mir leid, es ist mein Fehler, ich führe setInterval() oft aus. – Yan

Antwort

2

Warum verwenden Sie nicht this selbst in der setInterval? Sie haben die fat arrow Funktion verwendet, so dass Sie immer noch this verwenden können.

Hier ist ein Beispielcode:

constructor (props) { 
    super(props) 
    this.state = { 
     number: 0 
    } 
    } 

componentDidMount(){ 
    setInterval(() => { 
     this.setState({number: parseInt(this.state.number, 10) + 1 }); 
    }, 2000); 

} 

render() { 
    return (
    <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center',}}> 
     <Text> 
     {this.state.number } 
     </Text> 
    </View> 
); 
} 

Expo Demo

+0

Ja, du hast Recht, kann das nutzen. – Yan