Middle
Je možné vo funkčnej komponentu poskytnúť externý prístup k metódam komponentu (dať 'rukojeti' navonok)?
sobes.tech AI
Odpoveď od AI
V funkčných komponentoch React môžete poskytnúť externý prístup k metódam komponentu pomocou forwardRef a useImperativeHandle.
Toto umožňuje 'odovzdať' referenciu a určiť, ktoré metódy alebo vlastnosti budú dostupné zvonku.
Prí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čítadlo: {count}</div>;
});
// Použitie
// const ref = React.createRef();
// <MyComponent ref={ref} />
// ref.current.increment();
Týmto spôsobom môže externý kód volať metódy increment a reset komponentu.