Как упомянуто в документах , это полезно для многократно используемых компонентов , то есть компонентов, которые обычно используются как обычные HTML DOM-элементы.
This полезно для библиотек компонентов, где у вас много «листовых» компонентов. Вы, вероятно, использовали такой, как Material UI.
Пример:
Допустим, вы поддерживаете библиотеку компонентов.
Вы создаете <Button/>
и <Input/>
компонент, который, возможно, просто добавляет стиль по умолчанию.
Обратите внимание, что эти компоненты буквально похожи на обычные HTML элементы DOM с дополнительными шагами.
Если эти компоненты были сделаны будет использоваться как обычные элементы HTML DOM, тогда я ожидаю, что все реквизиты будут одинаковыми, включая ref
, нет?
Не было бы утомительно, если бы получить кнопку ref от вашего * Компонент 1024 * Я должен был бы получить его через что-то вроде fRef
или buttonRef
?
То же самое с вашим <Input/>
, мне нужно go к документации, чтобы просто узнать, какой реф использовать, и это что-то вроде inputRef
? Теперь я должен запомнить?
Получение ссылки должно быть простым: <Button ref={}/>
Задача
Как вы, возможно, знаете, ref
не будет пропущено через реквизит потому что, как и key
, React обрабатывает его по-разному.
Solution
React.forwardRef () решает эту проблему, поэтому я могу использовать <Button ref={}/>
или <Input ref={}/>
.