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

Как использовать forwardRef для классового компонента?

Добрый день, нужна ref на дочерний компонент который находится на 2 уровне вложенности, использую forwardRef.

Родитель компонента, на который нужна ссылка:
interface BProps {
  title: string;
  innerRef?: React.Ref<CComponent>;
}

class BComponent extends React.Component<BProps> {
  render() {
    const {innerRef, ...props} = this.props;
    return <CComponent {...props} ref={innerRef} />;
  }
}

export default React.forwardRef<CComponent, BProps>((props, ref) => (
  <BComponent
  {...props}
  innerRef={ref} 
  />
));


Но теперь я не могу передать props.children пишет что chilren не ожидается в props компонента.
Мне пришлось закостылить и добавить в BProps children?: React.ReactNode
И все работает, ref передается, все как надо, но меня не покидает чувство что это халтура, и я где-то что-то не правильно сделал.

Подскажите пожалуйста, как правильно использовать forwardRef с классовыми компонентами в typescript?
Те примеры что я нашел, они не подходят, тк ref на обычный html элементы, и без указания props и тп.

В чем моя ошибка?
  • Вопрос задан
  • 242 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
jt3k
@jt3k
Фронтендер, люблю работать и получать удовольствия
// @ts-ignore не помогло ?
Возможно поможет any
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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