Объявление 'ref' в чистой реакции

Я проходил курс сокращения на egghead.io Дэна Абрамова, он создал поле ввода и назначил атрибут ref, который выглядит как функциональное назначение. Код выглядит следующим образом:

<input ref = {node => {input = node;}} />
    
<button onClick = {() => { input.value = ''}> ADD</button>

Не могли бы вы объяснить это, спасибо заранее!

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
119
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Это может помочь

const inputRef = React.useRef(null); // create ref of input using Hooks

<input ref = {inputRef} /> // render input field and assign ref to it
    
// render button and when click on it, it reassign the input value to empty     
<button onClick = {() => { inputRef.current.value = '' } > ADD </button>

Однако это, похоже, не отвечает на вопрос ОП.

Felix Kling 16.12.2020 12:08

ya @FelixKling, все в порядке, нет проблем, хотя я научился на этой опоре, хороший ответ

Aashiq 16.12.2020 12:18
Ответ принят как подходящий

Эта функция называется callback refs. Если вы передадите функцию ref, она будет вызвана с элементом DOM в качестве аргумента, и вы сможете делать с ним все, что захотите. В вашем примере этот элемент присваивается переменной input.

Бывают случаи, когда вам нужно «убежать» от модели React и вам нужен доступ к базовым элементам DOM (например, для управления фокусом), и refs — это (?) способ сделать это.

Ты казался прав, братан, спасибо за твой ответ

Aashiq 17.12.2020 07:18

Мы используем «ref», когда хотим получить доступ к объекту элемента dom. и это реагирующий способ получить объект dom.

Вы можете использовать традиционный способ получения объекта dom document.getElementById("inputId"), но проблема в том, что вам нужно использовать его в правильном жизненном цикле, иначе вы можете не получить элемент.

Еще одним преимуществом ссылки является то, что если компонент будет уничтожен, ваш объект ссылки также будет уничтожен.

Пример:

<input id = "inputId" ref = {node => {input = node;}} />
    
<button onClick = {() => { input.value = ''}> ADD</button>

console.info(input)

console.info(document.getElementById("inputId"))

Обе консоли будут указывать на один и тот же элемент dom

проверьте это для более подробной информации https://reactjs.org/docs/refs-and-the-dom.html

Другие вопросы по теме