Tengo un botón que se espera que llame a una función onClick. La función se pasa como accesorio. Y esto es lo que parece:
onClick={() => handleError && handleError()}El problema aquí es que cuando hago clic en él, solo se llama una vez y no se vuelve a llamar después de eso.
Esta es la función handleError, pero el problema no es el contenido de la función. Es que la función no se llama en absoluto después de haber sido llamada una vez:
const handleError = (nextBtn: BtnItem) => { if (title === '') { setError(true); } else { if (nextBtn?.onClick) { nextBtn.onClick(); console.log('clicked too'); } else if (nextBtn?.route) { history.push(nextBtn.route); console.log('clicked'); } } };Alguna idea de por qué esto esta pasando? Cualquier ayuda será apreciada. ¡Gracias!
onClick={handleError ? () => handleError() : () => {}}
¿Qué es handleError ? Necesitamos un poco más de código para trabajar.
Si solo desea ejecutar la función si una variable es verdadera. Puede verificarlo directamente en el método que llama y no en onClick() en sí.
Solo haz onClick={handleError}