alex4answ
@alex4answ

Как вызвать методы вложенного компонента?

Добрый вечер, у меня есть классовый компонент, который работает с <canvas>
В нем реализованы все необходимые методы для отрисовки.

class Layout extends React.Component {
  canvas = React.createRef();
 
  // методы для отрисовки, отчистки и тп
  draw = (x1, y1, x2, y2) => {
    // рисуем линию 
  };

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


Как я могу вызвать метод draw этого класса из родительских компонентов ?
Грубо говоря мне нужно управлять <Layout /> из родительских компонентов.
Уровень вложенности может быть разный.

Пока знаю только 1 вариант (не проверял рабочий ли он):
Использовать контекст, передавать ref на компонент <Layout /> и использовать ее для управления компонентом.

Какие способы решения этому есть?

P.S. Я знаю что обычно компоненты управляются с помощью state, props, но в моем случае, при работе с canvas это не подходит.
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 1
MaximBredikhin
@MaximBredikhin
React.useEffect, в котором в зависимости передать проп, может вам помочь.
Ответ написан
Ваш ответ на вопрос

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

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