Tengo esto en React-Native, básicamente guardé con éxito algunas cosas usando AsyncStorage desde LoginScreen. Ahora estoy tratando de acceder a esas variables en mi HomeScreen usando AsyncStorage.getItem
const userdata = async () => { try { return await AsyncStorage.getItem("user_nicename") } catch(error) { console.log(error) } } console.log(userdata) //returns { ƒ _callee() { //return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.async(function _callee$(_context) { // while (1) { // switch (_context.prev = _context.next) {....¿Qué estoy haciendo mal aquí? Parece ser muy sencillo.
Hay un par de cosas en las que te estás equivocando al respecto.
userdata()userdata para el identificador de nombres, convierta los datos de usuario en datos de userData Para su solución, deberá llamar a su función, datos de userdata en una función basada en promesas, ya sea async-await o .then o en una función de devolución de llamada. Estoy sugiriendo dos formas de mejorar su código.
Método 1: Usar .then()
// in home screen userdata() .then((data) => console.log(data)) .catch((err) => console.log(err));Método 2: usar async-await en tu pantalla de inicio
// home screen const getUserData = async () => { try { console.log(await userdata()); } catch (err) { console.log(err); } }; // then call the function getUserData()userdata es una función asíncrona. Prueba esto:
console.log(await userdata())