2017-01-02 6 views
1

Ich versuche, einen Status von einer Abrufantwort festzulegen, aber es scheint, dass es eine Weile dauert, den Status zu aktualisieren.React Native: setState Verzögerung

Was ich gelernt habe, ist, dass Fetch ist schnell, bis es zu setState kommt. Dort dauert das Aktualisieren ca. 3 Sekunden.

fetch(ENDPOINT) 
     .then((response) => response.json()) 
     .then((responseJson) => { 
     this.setState({product : responseJson.product, related: responseJson.related, ready: true}); 
     }) 
     .catch((error) => { 
     console.error(error); 
    }).done(); 

Irgendwelche Tipps?

Dank

+0

Wie haben Sie messen 3 Sekunden Verzögerung? Sie müssen den Unterschied zwischen zwei "Dann" -Bedingungen messen. –

+0

Die Verzögerung passiert mit setState und propagiert es. –

Antwort

4

setState ist asynchron.

Aus der Dokumentation selbst reagieren, wenn Sie sehen: -

setState() does not immediately mutate this.state but creates a pending state transition. Accessing this.state after calling this method can potentially return the existing value. There is no guarantee of synchronous operation of calls to setState and calls may be batched for performance gains.

Sie können in der documentation mehr darüber lesen.

Außerdem können Sie etwas überprüfen ähnliche here

+0

OK, ich denke, ich komme dorthin. Es scheint, dass meine reactClasses langsam rendern. Irgendwelche Trinkgeld? –