Tengo un botón con onclick para reaccionar así:
<Button onClick={this.editApp} type='link'> Edit </Button>cuando agregué un parámetro con la función, se ejecutará inmediatamente:
<Button onClick={this.editApp(record)} type='link'> Edit </Button>¿Por qué onclick se ejecutará inmediatamente con un parámetro? esta es la función definir:
editApp = (row) => { this.setState({ isEditModalVisible: true, editRowData: row }) }porque la función se ejecutará de inmediato, hará que entre en un bucle muerto. ¿Por qué sucedería esto y qué debo hacer para solucionarlo? ¿Significa que será una mejor manera de escribir onclick con una función de flecha sin importar si tiene un parámetro o no?
Se está ejecutando inmediatamente porque lo invocaste allí. onClick espera una función y no su valor de retorno. Si desea pasar un argumento a una función, debe envolverlo en otra función.
<Button onClick={() => this.editApp(record)} type='link'> Edit </Button>Debe crear una función anónima si desea que se pase un parámetro de forma predeterminada:
<Button onClick={() => this.editApp(record)} type='link'> Edit </Button>La función se ejecuta inmediatamente cuando se procesa el botón porque se está llamando, debe envolverlo en la función anónima para que funcione.
prueba esto
<Button onClick={() => this.editApp(record)} type='link'> Edit </Button>