Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

323
Views
TypeError no capturado: no se pueden leer las propiedades de undefined (leyendo 'navegar')

Soy nuevo para reaccionar nativo y reaccionar navegación y me sale este error.

TypeError no capturado: no se pueden leer las propiedades de undefined (leyendo 'navegar')

No entiendo mi porque solo estoy usando el mismo código que ya funcionó, pero ahora no funciona.

Estoy tratando de hacer una flecha hacia atrás que lo envíe de regreso a la pantalla MachineList.

 //doesn't work const AddMachineDetails = ({route}, props) => { ... <TouchableOpacity onPress={() => props.navigation.navigate("MachinesList")}> <BackArrow /> </TouchableOpacity>

Entonces, cuando presiono mi flecha hacia atrás, me envía este error:

Uncaught TypeError: Cannot read properties of undefined (reading 'navigate')

Aquí está mi archivo de navegación:

 import MachinesList from '../components/MachinesList' import AddMachineDetails from '../components/AddMachineDetails'; ... function MachineListStackScreen() { return( <Stack.Navigator screenOptions={{headerShown: false}}> <Stack.Screen name='MachinesList' component={MachinesList}/> <Stack.Screen name='AddMachineDetails' component={AddMachineDetails}/> </Stack.Navigator> ) } ...

Creo que el problema está en algún lugar de este código, pero si no, les mostraré más de mi código.

Aquí hay un ejemplo donde mi navigation.navigate funciona perfectamente:

 //no specific imports (but works) const MachinesList = (props) => { ... <TouchableOpacity style={styles.machineBox} onPress={() => props.navigation.navigate('AddMachineDetails', {item})}>
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Tienes que destruir el argumento de los accesorios.

 const AddMachineDetails = ({route, ...props}) => { ... }

o

 const AddMachineDetails = ({route, navigation, ...props}) => { ... } // then straightly use the *navigation*
about 4 years ago · Juan Pablo Isaza Report

0

El problema está aquí ({route}, props) => .

Está desestructurando el primer argumento, pero no se pasan otros parámetros y es por eso que la variable "props" no está definida.

Tienes dos soluciones:

  1. Solo usa accesorios:
 const AddMachineDetails = (props) => {
  1. Accesorios de desestructuración:
 const AddMachineDetails = ({route, navigation, ...props}) => { ... <TouchableOpacity onPress={() => navigation.navigate("MachinesListDetails")}> <BackArrow /> </TouchableOpacity>
about 4 years ago · Juan Pablo Isaza Report

0

El encadenamiento opcional puede ser útil en el futuro para evitar errores en el tiempo de ejecución. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!