Actualmente necesito ayuda con un problema de navegación de React Native. Mi objetivo es pasar un 'ID de usuario' a mi pantalla de detalles, pero no funciona
Versión del paquete:
"@react-navigation/native": "^6.0.7", "@react-navigation/native-stack": "^6.3.0"Mi código:
export default function MessagesScreen({navigation}: any) { const [loading, setLoading] = React.useState(false); const [messages, setMessages] = React.useState([]); useEffect(() => { loadChatrooms(); }, []); const goToMessageDetail = (id: number) => { console.log('goToMessageDetail', id); navigation.navigate('MessageDetail', {userid: id}); }; } export function MessageDetailScreen({navigation}: any) { const [user, setUser] = React.useState(''); const [userid, setUserid] = React.useState(''); const [chatpartnerId, setChatpartnerId] = React.useState(''); const [message, setMessage] = React.useState(''); const [messages, setMessages] = React.useState([]); //needs to fetch chatroom details useEffect(() => { **//=> I can't access the param : console.log says there is nothing** setChatpartnerId(navigation.getParam('userid')); } }Configuración de navegación
const screens = [ Messages: { screen: MessagesScreen, }, MessageDetail: { screen: MessageDetailScreen, }, ] const HomeStack = createStackNavigator(screens, { defaultNavigationOptions: { headerStyle: { borderBottomWidth: 0, elevation: 0, shadowOpacity: 0, height: 0, }, headerTintColor: 'rgba(0,0,0,0.0)', }, }); export default createAppContainer(HomeStack);¿Me perdí algo? Realmente aprecio tu ayuda
La forma de acceder a los parámetros de navegación es incorrecta. Esto ha cambiado en la versión 5 de react-navigation . Debe acceder a los parámetros de ruta a través del objeto de ruta de la siguiente manera.
export function MessageDetailScreen({ route, navigation }) { const { userid } = route.params; // desctructure the route params ... }Compara este comportamiento con la guía en la documentación oficial .