Aquí está mi código (seguí esta guía: https://docs.expo.dev/versions/latest/sdk/securestore/ ):
fetch('<APIurl>', { method: 'POST', body: formBody, headers: { //Header Definition 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', }, }) .then((response) => response.json()) .then((responseJson) => { console.log(responseJson.id_user); // If server response message same as Data Matched if (responseJson.status != '0 results') { //Alert.alert("Excellent!", "Please go on"); async function save(key, value) { await SecureStore.setItemAsync(key, value); } async function getValueFor(key) { let result = await SecureStore.getItemAsync(key); if (result) { alert("🔐 Here's your value 🔐 \n" + result); } else { alert('No values stored under that key.'); } } save(id_user, responseJson.id_user); getValueFor(id_user); //navigation.navigate('InsertCodeScreen'); } else { console.log('Please check your mobileNumber'); } }) .catch((error) => { //Hide Loader console.error(error); });devuelve No se puede encontrar la variable: id_user
Extrañamente, si save(responseJson.id_user, responseJson.id_user); funciona perfectamente, pero si en otra pantalla hago getValueFor(responseJson.id_user); , la aplicación se queja de que no puede encontrar la variable responseJson .
Pero, por cierto, ¿no es el primer argumento de save() el nombre que quiero darle al elemento que quiero almacenar?
Resuelto: no me había dado cuenta antes de que la "clave" para guardar () debe ser una cadena