Quiero pasar una función de devolución de llamada. En este momento se llama antes de que se pasa. ¿Qué está mal?
<MyComponent callback={()=> console.log(1)} isDirty ={true} setCallback={()=>{}} />Declaración
export function MyComponent({ ...props} ) { const { setCallback, callback, isDirty } = props const cancelCallback = isDirty ? () => setCallback(callback) : callback return ( <> <Button onClick={cancelCallback}>Cancel</Button> </> ) }Lo repliqué en mi sistema y no se llama. Un error común es pasar una función de devolución de llamada como esta:
callback={console.log(1)}en cambio así:
callback={() => console.log(1)}Con este error, la función de devolución de llamada se llama de inmediato.
necesita actualizar su función de controlador de clics.
const cancelCallback = () => { isDirty ? setCallback(callback) : callback(); };