2016-07-25 36 views
12

我在React Native中保存一些項目到AsyncStorage,我使用的是Chrome調試器和iOS模擬器。React Native - 如何查看AsyncStorage中存儲的內容?

沒有反應過來本地,使用常規的Web開發localStorage,我能夠看到存儲localStorage項目下Chrome Debugger > Resources > Local Storage

任何想法,我怎麼能查看陣營本地AsyncStorage存儲的項目?

+0

不知道是否存在這樣的工具,我通常只是查詢它並傳遞一個回調來記錄它。 AsyncStorage.getItem('thing')。then((res)=> console.log(res))' – agmcleod

+0

是的,這就是我現在要做的,但試圖看看是否有可視化的方式來查看存儲中的所有內容。 – Wonka

+0

放入UI組件https://github.com/vczero/rn-cook – James

回答

2

隨着bluebird你可以這樣做:

const dumpRaw =() => { 
    return AsyncStorage.getAllKeys().then(keys => { 
    return Promise.reduce(keys, (result, key) => { 
     return AsyncStorage.getItem(key).then(value => { 
     result[key] = value; 
     return result; 
     }); 
    }, {}); 
    }); 
}; 

dumpRaw().then(data => console.log(data)); 
+1

由於您使用的是箭頭功能,因此您可以使用簡寫箭頭功能: 而不是'a => {return b => {return c}}'你可以做'a => b => c' –

0

React Native Debugger有這個建於

只需撥打showAsyncStorageContentInDev()即可D控制檯,您將能夠看到應用程序存儲的轉儲。

0

我沒有發現Reactotron有任何類型的漂亮打印功能,它也是殘酷的潛伏,所以我只是寫了一個簡單的函數使用lodash。你也可以使用下劃線。

假設你把所有的密鑰的靜態映射...

const keys = { 
    key1: 'key1', 
    key2: 'key2' 
} 

export function printLocalStorage() { 
    _.forEach(keys, (k, v) => { 
    localStore.getAllDataForKey(v).then(tree => { 
     console.log(k) // Logs key above the object 
     console.log(tree) // Logs a pretty printed JSON object 
    }) 
    }) 
} 

這不是高性能的,但它解決了這個問題。

相關問題