2016-07-25 19 views
12

Tôi lưu một số mục vào AsyncStorage trong React Native và tôi đang sử dụng trình gỡ lỗi chrome và trình mô phỏng iOS.React Native - Cách xem những gì được lưu trữ trong AsyncStorage?

Nếu không có phản ứng tự nhiên, sử dụng thường xuyên phát triển web localStorage, tôi đã có thể thấy được lưu trữ localStorage mục dưới Chrome Debugger > Resources > Local Storage

Bất kỳ ý tưởng làm thế nào tôi có thể xem Phản ứng Native AsyncStorage mục lưu trữ?

+0

Không chắc chắn nếu các công cụ như vậy tồn tại, tôi thường chỉ truy vấn nó và chuyển một cuộc gọi lại để đăng nhập. "AsyncStorage.getItem ('thing'). ((Res) => console.log (res))' – agmcleod

+0

Vâng, đó là những gì tôi làm bây giờ, nhưng cố gắng để xem nếu có một cách trực quan để xem tất cả mọi thứ trong lưu trữ. – Wonka

+0

Thả thành phần giao diện người dùng https://github.com/vczero/rn-cook – James

Trả lời

16

Bạn có thể sử dụng reactotron tôi nghĩ rằng nó có Async lưu trữ thám hiểm;) https://github.com/infinitered/reactotron

enter image description here

+1

Làm thế nào đây không phải là câu trả lời ??? Đây là một công cụ thực sự ngọt ngào! – dericcain

2

Với bluebird bạn có thể làm điều này:

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

vì bạn đang sử dụng chức năng mũi tên, bạn có thể sử dụng chức năng mũi tên viết tắt: thay vì 'a => {return b => {return c}}' bạn có thể làm 'a => b => c' –

0

React Native Debugger này đã được xây dựng trong

.

Chỉ cần gọi showAsyncStorageContentInDev() trong RN D giao diện điều khiển và bạn sẽ có thể nhìn thấy một bãi chứa của ứng dụng của bạn.

0

Tôi không tìm thấy Reactotron để có bất kỳ loại in ấn đẹp nào được kích hoạt và nó cũng tàn nhẫn tiềm ẩn nên tôi chỉ viết một hàm đơn giản bằng cách sử dụng lodash. Bạn cũng có thể sử dụng dấu gạch dưới.

Giả sử bạn có một ánh xạ tĩnh của tất cả các phím của bạn ...

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 
    }) 
    }) 
} 

Nó không performant nhưng nó giải quyết vấn đề.

Các vấn đề liên quan