aquí he pegado un código que es un componente de clase escrito para la gestión del estado de mobx y lo estoy llamando a otro archivo, el problema es que tengo más de 450 respuestas api y necesito almacenarlo localmente, así que lo probé pero no obtengo ningún valor ni los datos almacenados en la base de datos por favor ayúdenme gracias de antemano ..
class ProductStore { constructor() { makeAutoObservable(this); } screenWidth = width; screenHeight = height; headerHeight = 0; isiOS = Platform.OS === 'ios'; isAndroid = Platform.OS === 'android'; isProductLoading = 'pending'; productData = []; filterdData = []; search = ''; isFlatlistRender = false; setFields(eName, data) { this[eName] = data; console.log(eName, data); } getproductData = () => { if (this.isProductLoading == 'loading') { return true; } this.isProductLoading = 'loading'; this.productData = []; let headers = new Headers(); headers.set( 'Authorization', 'Basic ' + encode('username:password'), ); fetch('some_url', { method: 'GET', headers: headers, }) .then(response => response.json()) .then(responseJson => { console.log('.....', responseJson); AsyncStorage.setItem( 'ACCESS_TOKEN', JSON.stringify(responseJson), err => { if (err) { console.log('an error'); throw err; } console.log('success'); }, ).catch(err => { console.log('error is: ' + err); }); try { const value = AsyncStorage.getItem('ACCESS_TOKEN'); if (value !== null) { console.log(JSON.parse(value)); } } catch (error) {} this.productData = responseJson; this.isProductLoading = 'done'; }) .catch(error => { console.error(error); this.isProductLoading = 'error'; }); }; } export default new ProductStore();AsyncStorage.getItem() devuelve una promesa, no el valor. Entonces, simplemente agregue un bloque then después de la línea AsyncStorage.getItem('ACCESS_TOKEN'); . seria asi
AsyncStorage.getItem('ACCESS_TOKEN').then(value => { if (value !== null) { console.log(JSON.parse(value)); } }).catch(err => console.error(err));