Задать вопрос
Ni55aN
@Ni55aN

Как получить ref только при первом создании элемента по ключу?

Как сказано в доке, при обновлении дерева элементов ref будет сначала вызван с null, а потом с тем же HTMLElement.
При условии, что ни ключ, ни HTMLElement не поменялись, мне не нужно, чтобы вызывался ref.

Есть ли встроенная возможностью получать только измененные ref?
  • Вопрос задан
  • 176 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Там сказано совсем не об этом, а о том, что не надо inline functions в ref писать.
Неправильно:
class Example extends React.Component {
  ref;
  
  render() {
    return <div ref={node => this.ref = node} />;
  }
}

В этом случае каждое обновление компонента Example, будет два вызова колбека переданного в ref. Один раз с аргументом null, второй раз с вашим элементом или компонентом.

Правильно:
class Example extends React.Component {
  ref;
  createRef = node => this.ref = node;

  render() {
    return <div ref={this.createRef} />;
  }
}

В этом случае при обновлении Example вызова колбека не будет, так как ссылка на колбек не изменилась.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽