Ni55aN
@Ni55aN

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

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

Есть ли встроенная возможностью получать только измененные ref?
  • Вопрос задан
  • 168 просмотров
Пригласить эксперта
Ответы на вопрос 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 вызова колбека не будет, так как ссылка на колбек не изменилась.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы