Soy completamente nuevo para reaccionar y algo mediocre en JS. Solo quiero saber cuál es la diferencia entre darle a un botón estos parámetros para su evento onClick:
Recientemente recibí un error en el que llamé a una función con un parámetro como onClick={doThisFunc(a)} y la aplicación dijo "Demasiados renderizados. React limita el número de renderizados para evitar un bucle infinito". Pero luego lo cambié a onClick={() => doThisFunc(a)} y funciona perfectamente.
Perdón por esa pregunta de principiante y muchas gracias por sus comentarios.
onClick={doThisFunc}
Esto significa "pasar la función al accesorio onclick". Más tarde, cuando ocurra el clic, reaccionar llamará a doThisFunc , pasando el evento de clic. Esto suele ser lo correcto, suponiendo que desea que la función reciba el evento de clic.
onClick={doThisFunc()}
Esto significa "llamar a la función de inmediato y pasar su valor de retorno al accesorio onclick". Esto suele ser un error. Solo haría esto si doThisFunc fuera una fábrica que crea funciones de manejo de clics, lo cual es raro.
onClick={() => hacerEstaFunc()}
Esto significa "crear una nueva función con el texto () => doThisFunc() y pasarla a onClick". Más tarde, cuando ocurra el clic, reaccionar llamará a su nueva función, que a su vez llamará a doThisFunc.
Este enfoque a veces es solo una forma más detallada de obtener el mismo resultado final que la opción 1. Pero tiene la ventaja de que puede pasar los valores que desee a doThisFunc, por lo que si desea pasar algo más que el evento, usarías esto.