Estoy usando el componente Link del enrutador reactjs y no puedo hacer que funcione onClickevent. Este es el código:
<Link to={this.props.myroute} onClick='hello()'>Here</Link>
¿Es esta la forma de hacerlo o de otra forma?
reactjs
react-router
react-redux
bier hier
fuente
fuente
this.hello.bind(this)
<Link to="" onClick={this.delete}>Delete</Link>
. Deseo "a" es opcional aquí.Link
sinto
? Si no lo necesita, solo use algún otro componente como un<button>
con elonClick
método y estará listo;).No creo que este sea un buen patrón para usar en general. Link ejecutará su evento onClick y luego navegará a la ruta, por lo que habrá un ligero retraso en la navegación hacia la nueva ruta. Una mejor estrategia es navegar a la nueva ruta con la opción 'to' como lo ha hecho, y en la función componentDidMount () del nuevo componente puede activar su función hello o cualquier otra función. Te dará el mismo resultado, pero con una transición mucho más suave entre rutas.
Para el contexto, noté esto mientras actualizaba mi tienda redux con un evento onClick en Link como el que tiene aquí, y causó un retraso de ~ .3 segundos en la pantalla en blanco antes de montar el componente de la nueva ruta. No hubo ninguna llamada de API involucrada, así que me sorprendió que el retraso fuera tan grande. Sin embargo, si solo está registrando la consola "hola", es posible que el retraso no se note.
fuente
onClick
antes de hacer la transición a la nueva ruta. No obtendré esa URL de devolución de llamada en el siguiente componente, así que necesito hacer eso antes de la transición. ¿Tienes alguna alternativa a eso? PD: La URL de devolución de llamada debe ser accesible incluso después de la actualización, por lo que puede guardarla en la tienda.onPress={() => { this.props.navigation.navigate('NameOfNextScreen', { callbackUrl: 'http://.callbackUrl.com', });
Si no está usando react-navigation I solo usaría Link's onClick y no se preocupe por el ligero problema de rendimiento. Probablemente no se notará.