Следующее должно работать,
AsyncStorage.getAllKeys((err, keys) => {
AsyncStorage.multiGet(keys, (error, stores) => {
stores.map((result, i, store) => {
console.log({ [store[i][0]]: store[i][1] });
return true;
});
});
});
React Native Debugger имеет встроенную функцию.
Просто позвоните showAsyncStorageContentInDev()
в консоли RND, и вы увидите дамп хранилища вашего приложения.
С помощью Синяя птица вы можете сделать это:
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));
Я не обнаружил, что в 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
})
})
}
Это не производительность, но это решает проблему.