Я бачу, що React.forwardRef, здається, є санкціонованим способом передачі відгуку до дочірнього функціонального компонента від реагуючих документів:
const FancyButton = React.forwardRef((props, ref) => (
<button ref={ref} className="FancyButton">
{props.children}
</button>
));
// You can now get a ref directly to the DOM button:
const ref = React.createRef();
<FancyButton ref={ref}>Click me!</FancyButton>;
Однак у чому полягає перевага, ніж просто проходження користувальницької опори ?:
const FancyButton = ({ innerRef }) => (
<button ref={innerRef} className="FancyButton">
{props.children}
</button>
));
const ref = React.createRef();
<FancyButton innerRef={ref}>Click me!</FancyButton>;
Єдиною перевагою, про яку я можу подумати, - це, можливо, мати постійну версію для реф., Але чи є якась інша перевага? Чи впливає передача користувальницької опори на відмінність, якщо мова йде про візуалізацію та викликає додаткові візуалізації, безумовно, не тому, що ref зберігається як змінне стан у current
полі?
Скажімо, наприклад, що ви хотіли пройти декілька рефлексив (що може означати запах коду, але все-таки), тоді єдиним рішенням, яке я бачу, було б використання реквізиту customRef.
Я думаю, що моє запитання полягає у тому, яке значення має використання forwardRef
спеціальної опори?