Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to retrieve data with AsyncStorage multiGet in React Native

I'm considering how to use React-native AsyncStorage multiGet in docs written:

AsyncStorage.multiGet(keys, (err, stores) => {

But how those keys should properly look like? Here is how they are set within my application:

AsyncStorage.multiSet([['@BarcodeList', JSON.stringify(scanedList)], ['@ScannedBarcode', gotCode]]);

It's ok, but how can i retrieve that data with multiGet? With getItem it seems working, what i am doing wrong? both(getItem, multiGet) of them below.

AsyncStorage.multiGet(["@BarcodeList", "@ScannedBarcode"]).then((scanedList2, scannedBarcode) => {
    //AsyncStorage.getItem("@BarcodeList").then((scanedList2) => {
like image 944
Nerius Jok Avatar asked May 02 '18 11:05

Nerius Jok


People also ask

Where does AsyncStorage save data React Native?

On iOS, AsyncStorage is backed by native code that stores small values in a serialized dictionary and larger values in separate files. On Android, AsyncStorage will use either RocksDB or SQLite based on what is available.

What does AsyncStorage getItem return?

getItem ​ Gets a string value for given key . This function can either return a string value for existing key or return null otherwise. In order to store object value, you need to deserialize it, e.g. using JSON. parse() .


1 Answers

It works the following way, since it gives nested array response

The array contains key as index 0 and value as index 1

 AsyncStorage.multiGet(["@BarcodeList", "@ScannedBarcode"]).then(response => {
            console.log(response[0][0]) // Key1
            console.log(response[0][1]) // Value1
            console.log(response[1][0]) // Key2
            console.log(response[1][1]) // Value2
        })
like image 129
Pritish Vaidya Avatar answered Oct 23 '22 01:10

Pritish Vaidya