2015-11-09 13 views
6

È necessario memorizzare alcuni dati utente, ad esempio impostazioni, accesso, token ecc. Tra una sessione e l'altra. Provato asyncstorage ma quando riavvio app, i dati in esso vengono eliminati. Trovato alcuni moduli che si riferiscono a portachiavi o NSUserDefaults, ma non so quale e nessuno di essi è buono per questo scopo.
La caratteristica principale è che posso ottenere quei dati anche dopo che l'app è stata uccisa e riavviata. Soprattutto su iOS, ma se fosse anche su Andorid sarebbe fantastico.
Qualcuno ha avuto qualche esperienza con questo?Dati store nativi reattivi tra le sessioni

EDIT:
Ho provato ad utilizzare asyncstorage. Ma non fa nulla quando uccidi e riavvii l'app.
Il mio codice per i dati di archiviazione:

AsyncStorage.setItem("prefix", responseData['prefix']) 
AsyncStorage.setItem("api_token", responseData['api_token']) 

e il recupero dei dati:

async _checkAutoLogin(){ 
    var prefix; 
    var token; 
    try { 
     prefix = await AsyncStorage.getItem("prefix"); 
     token = await AsyncStorage.getItem("api_token"); 
} catch (error) { 
     AlertIOS.alert('AsyncStorage error: ' + error.message); 
    } 
+0

pls condividono un codice su come si usa asyncstorage (restituisce una promessa) – Sulliwane

+0

modificato la mia risposta, e il codice aggiunto. –

risposta

0

Questo funziona anche dopo il riavvio dell'app:

_login:function(token){ 
    AsyncStorage.setItem('ApiToken',token, 
    () => this.setState({isLoggedIn:true}), 
     (error) => console.log(error) 
    ); 
    }, 
8

AsyncStorage dovrebbe salvare i dati sul dispositivo in modo che vi si possa accedere a prescindere se la vostra applicazione è stata precedentemente inviata allo sfondo o è stato freddo lanciato . Se stai cercando di utilizzare la parola chiave await penso che ci sia qualche setup extra che dovrai fare per farlo funzionare. Here's a good article per farti andare con quello.

Inoltre, a seconda di quanto si ha intenzione di fare con AsyncStorage, il sito di Native React dice questo:

Si consiglia di utilizzare un'astrazione in cima AsyncStorage invece di AsyncStorage direttamente per qualcosa di più di utilizzo della luce dato che opera a livello globale.

ho scritto un piccolo involucro attorno ad esso chiamato react-native-simple-store che avvolge solo su AsyncStorage ed espone un'API minimalista, ma ti dà JSON.stringifying e JSON.parsing di default per i valori più complessi in modo da non avere preoccuparsi di questo

Oppure se si finisce per richiedere più di un database locale there are other modules for that.

Spero che questo aiuti!

0

C'è anche Realm per Reagire nativi che vi dà un database locale completo: https://realm.io

Problemi correlati