En mi aplicación, la función de inicio de sesión envía el número de teléfono insertado por el usuario, y si el servidor devuelve "éxito", se supone que debe navegar a otra pantalla. Desafortunadamente, la aplicación devuelve "Undefined no es un objeto (evaluando 'navigation.navigate')".
El código es el siguiente:
const login = (mobileNumber, navigation) => { Object.keys(mobileNumber).forEach((key) => { console.log(mobileNumber[key]); }); if (mobileNumber.mobileNumber == null) { alert('Please fill Mobile number'); return; } let dataToSend = {mobileNumber: mobileNumber.mobileNumber}; let formBody = []; for (let key in dataToSend) { let encodedKey = encodeURIComponent(key); let encodedValue = encodeURIComponent(dataToSend[key]); formBody.push(encodedKey + '=' + encodedValue); } formBody = formBody.join('&'); fetch('https://mywebsite.com/api/v1/login.php', { method: 'POST', body: formBody, headers: { //Header Defination 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8', }, }) .then((response) => response.json()) .then((responseJson) => { console.log(responseJson); // If server response message same as Data Matched if (responseJson.status === 'success') { alert("Login OK!"); navigation.navigate('FeedScreen'); } else { console.log('Please check mobile number'); } }) .catch((error) => { //Hide Loader console.error(error); }); }