@justedoit

Как прокинуть ссылку ref в другой компонент?

Здравствуйте.

Есть два разных компонента. Необходимо реализовать подобный функционал:
class App extends React.Component {
  bottomRef = React.createRef();

  onClick = () => {
    this.bottomRef.current.scrollIntoView();
  };

  render() {
    return (
      <div>
        <button onClick={this.onClick}>Scroll to bottom</button>
        <div style={{ height: 2000 }} />
        <div ref={this.bottomRef}>bottom</div>
      </div>
    );
  }
}

ReactDOM.render(<App />, document.getElementById("root"));


Только реф ссылка и кнопка на которую вешают обработчик в разных компонентах и так что пропсами не прокинуть. Какие могут быть варианты еще сделать?

P.S. На сколько зашкварно заюзать getElementById в реакт компоненте и какие могут быть подводные камни с точки зрения оптимизации данного подхода?
  • Вопрос задан
  • 1097 просмотров
Пригласить эксперта
Ответы на вопрос 1
Simply1993
@Simply1993
Frontend developer
Вам нужно использовать либо forwardRef, либо передать ref через пропсы (только имя пропса использовать не ref, а например innerRef)

Предпочтительнее и правильнее будет первый вариант.
https://ru.reactjs.org/docs/forwarding-refs.html#f...
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час