Middle
Je možné v funkčním komponentu poskytnout externí přístup k metodám komponenty (dát 'rukojeti' venku)?
sobes.tech AI
Odpověď od AI
Ve funkčních komponentách React lze poskytnout externí přístup k metodám komponenty pomocí forwardRef a useImperativeHandle.
To umožňuje 'předat' referenci a určit, které metody nebo vlastnosti budou dostupné zvenčí.
Příklad:
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>Počet: {count}</div>;
});
// Použití
// const ref = React.createRef();
// <MyComponent ref={ref} />
// ref.current.increment();
Tímto způsobem může externí kód volat metody increment a reset komponenty.