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 и тп.

В чем моя ошибка?
  • Вопрос задан
  • 213 просмотров
Пригласить эксперта
Ответы на вопрос 1
jt3k
@jt3k
Фронтендер, люблю работать и получать удовольствия
// @ts-ignore не помогло ?
Возможно поможет any
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы