2017-10-06 1 views
0

Ich versuche AsyncStorage zu verwenden, um einen Wert festzulegen, und es scheint immer null zu sein. Ich habe async/have verwendet, um dies zu tun, aber ich habe auch versucht, die Fehlersuche zu reduzieren, um nur einen Wert zu setzen und den Callback zu überprüfen, und ich bekomme immer noch null. Irgendwelche Ideen, was ich hier falsch mache?AsyncStorage.setItem Callback immer Null

AsyncStorage.setItem('something', 'VALUE') 
    .then((val) => { 
    this.setState({storageValue: val ? val : 'EMPTY'}); 
    }) 

Dies gibt mir immer "leer" in meinem Zustand.

+0

Der Rückruf für 'setItem' gibt Ihnen nur einen Fehler, wenn ein Fehler aufgetreten ist. Es gibt Ihnen nicht den Wert, den Sie festlegen. https://facebook.github.io/react-native/docs/asyncstorage.html#setitem – Sidney

+0

Laut der Dokumentation kann 'setItem()' mit einem dritten Parameter, einem optionalen Fehler-Callback, aufgerufen werden. Dein 'val' ist höchstwahrscheinlich' undefined'. –

+0

Danke. Ich werde meinen anderen Code ausprobieren und ihn erneut fragen. –

Antwort

0

Ich kann es nicht in der Dokumentation finden, aber nach dem Beispiel Code Code scheint SetItem nichts (das Ergebnis wird im Beispielcode ignoriert), so vielleicht das Versprechen auch nichts zu lösen.

Sie versuchen, es einstellen könnte und es dann immer:

AsyncStorage.setItem('something', 'VALUE') 
.then(x => AsyncStorage.getItem('something') 
.then((val) => { 
    this.setState({storageValue: val ? val : 'EMPTY'}); 
}) 
0

Gibt es einen Grund, warum Sie nicht nur, was Sie in die setItem vorbei sind nicht verwenden kann? Sie können dieselbe Variable verwenden:

AsyncStorage.setItem('something', val) 
    .then(() => this.setState({storageValue: val ? val : 'EMPTY'})) 
+0

Das Szenario unterscheidet sich etwas von dem, was ich getestet habe. Ich habe es eingestellt und dann versucht, es später mit Jest zu erreichen. Wie gesagt, ich habe versucht, es auf das grundlegendste Szenario zu reduzieren, das ich herausfinden konnte, um festzustellen, was falsch war. –