2015-11-18 8 views
7

Sto cercando un modo per archiviare oggetti e array di dati localmente in React Native. Come si può fare? Guardando le API per AsyncStorage:Come memorizzare i dati localmente in React Native che non è una stringa

statico setItem (tasto: stringa, un valore: string, callback ?: (errore:? Error) => void) valore
Imposta per la chiave e chiede richiamata al termine , insieme a un errore se ce n'è. Restituisce un oggetto Promise.

Come si memorizzano oggetti e array localmente in React Native?

risposta

16

JSON.stringify ({}) può essere utilizzato per convertire la struttura dati in una stringa.

Dovresti quindi utilizzare JSON.parse() per riconvertire la stringa nella struttura dati originale.

È possibile creare un buon servizio per questo per eliminare alcuni codici standard nell'app. Ho usato window.localStorage come posizione di archiviazione "persistente" nell'esempio qui sotto. Adattalo come meglio credi.

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 se non si vogliono avere a preoccuparsi JSON.stringify e JSON.parse vorrei suggerire [reagire-native-semplici-store] (https://www.npmjs.com/package/reagiscono-native-semplici-store). Prende parte dello standard di uscita da AsyncStorage. – jasonmerino

+0

@jasonmerino amico, il tuo commento dovrebbe essere la migliore risposta. – ProteanDev

+1

Aspetta, l'utilizzo di un componente di terze parti dovrebbe essere la risposta accettata yh, quando alcune righe di vanilla js faranno il lavoro? : / –

Problemi correlati