2015-11-18 3 views
7

Ich bin auf der Suche nach einer Möglichkeit, Objekte und Datenfelder lokal in Native React zu speichern. Wie kann das gemacht werden? Mit Blick auf die api für AsyncStorage:So speichern Sie Daten lokal in React Native, die keine Zeichenfolge ist

statische setItem (key: String, value: String, Rückruf ?: (Fehler:? Error) => void)
Setzt den Wert für Schlüssel und ruft Rückruf bei Abschluss , zusammen mit einem Fehler, wenn es einen gibt. Gibt ein Promise-Objekt zurück.

Wie speichere ich Objekte und Arrays lokal in React Native?

Antwort

16

Mit JSON.stringify ({}) können Sie Ihre Datenstruktur in eine Zeichenfolge konvertieren.

Sie würden dann JSON.parse() verwenden, um die Zeichenfolge zurück in die ursprüngliche Datenstruktur zu konvertieren.

Sie könnten einen netten Service dafür erstellen, um einige Standardcodes in Ihrer App zu entfernen. Ich habe window.localStorage als "dauerhaften" Speicherort im folgenden Beispiel verwendet. Passen Sie es so an, wie Sie es für richtig halten.

var StorageService = function () {}; 

StorageService.prototype.get = function (key) { 
    return JSON.parse(window.localStorage.getItem(key)); 
}; 

StorageService.prototype.set = function (key, value) { 
    return window.localStorage.setItem(key, JSON.stringify(value)); 
}; 
+4

@NaderDabit, wenn Sie nicht wollen, über JSON.stringify und JSON.parse Sorgen haben würde ich vorschlagen, [reagieren-native-simple-store] (https://www.npmjs.com/package/react-native-simple-store). Nimmt einige der Boilerplate aus AsyncStorage. – jasonmerino

+0

@jasonmerino Kumpel, sollte dein Kommentar die beste Antwort sein. – ProteanDev

+1

Warte, mit einer Drittanbieter-Komponente sollte yh akzeptierte Antwort sein, wenn ein paar Zeilen von Vanille js die Arbeit machen werden? : / –

Verwandte Themen