2017-10-26 4 views
1

Wie AsyncStorage Artikel bei "componentDidMount" zu bekommen, hier mein CodeAsyncStorage Get Artikel

componentDidMount() { 
 

 
\t AsyncStorage.getItem('customer_id').then((value)=> this.setState({ customer_id: value })); 
 
     console.log(this.state.customer_id); /* doesn't work */ 
 
     console.log(`${this.state.customer_id}`); /* doesn't work */ 
 
    } 
 
\t 
 
\t 
 
    render() {return <View><Text>Customer ID : {this.state.customer_id}</Text></View>; /* it's work */  }

+0

AsyncStorage ist genau das - async. – Li357

+0

wow, downvote? erstaunliche – Ansyori

Antwort

0

Sie haben AsyncStorage zu handhaben - asynchron, komisch, dass ! Wie auch immer, Sie möchten einen Rückruf an die Methode getItem übergeben, die die Ergebnisse verarbeitet. Versuchen

componentDidMount(){ 
    AsyncStorage.getItem('customer_id', (error,value) => { 
     if (!error) { //If there are no errors 
      //handle result 
      if (result !== null) this.setState({customer_id:value}); 
     } 
    }); 
} 
+0

meine App plötzlich abgestürzt .. ich weiß nicht warum, aber trotzdem danke – Ansyori

+0

wegen der Änderung ? –

+0

es funktioniert mit wenig Modifikation, danke – Ansyori

1
try { 
    const value = await AsyncStorage.getItem('@MySuperStore:key'); 
    if (value !== null){ 
    // We have data!! 
    console.log(value); 
    } 
} catch (error) { 
    // Error retrieving data 
} 

For more information you can visit official docs.

+0

Fehler erhalten: Warten Sie auf reservierte Wort – Ansyori

+0

besuchen Sie diesen Link https://github.com/facebook/react-native/issues/12092 –

0

hier meine Antwort, mit der Modifikation von Ryan antwortet

var cust_id_tmp = ''; 
 

 
AsyncStorage.getItem('customer_id', function(errs, result) { 
 
    if (!errs) { 
 
    if (result !== null) { 
 
     //this.setState({customer_id:result}); <= we can't do this 
 
     cust_id_tmp = result; 
 
     console.log('customer_id : ' + result); /* it works */ 
 

 
    } 
 
    } 
 
}).then((value) => this.setState({ 
 
    cust_id: cust_id_tmp 
 
}));