Middle
È possibile in un componente funzionale fornire accesso esterno ai metodi del componente (dare delle 'maniglie' all'esterno)?
sobes.tech AI
Risposta dell'AI
Nei componenti funzionali di React, è possibile fornire accesso esterno ai metodi del componente utilizzando forwardRef e useImperativeHandle.
Questo permette di 'passare' un riferimento e definire quali metodi o proprietà saranno accessibili dall'esterno.
Esempio:
import React, { useImperativeHandle, forwardRef, useState } from 'react';
const MyComponent = forwardRef((props, ref) => {
const [count, setCount] = useState(0);
useImperativeHandle(ref, () => ({
increment() {
setCount(c => c + 1);
},
reset() {
setCount(0);
}
}));
return <div>Contatore: {count}</div>;
});
// Uso
// const ref = React.createRef();
// <MyComponent ref={ref} />
// ref.current.increment();
In questo modo, il codice esterno può chiamare i metodi increment e reset del componente.