Button = forwardRef<
HTMLButtonElement | HTMLAnchorElement,
IButton
>
В месте, где я возвращаю ссылку <a href={href} ref={ref}>{children}</a>
высвечивается ошибка:
TS2322: Type 'ForwardedRef<HTMLAnchorElement | HTMLButtonElement>' is not assignable to type 'LegacyRef<HTMLAnchorElement>'.
а где кнопку:
TS2322: Type 'ForwardedRef<HTMLAnchorElement | HTMLButtonElement>' is not assignable to type 'LegacyRef<HTMLButtonElement>'.
Как это можно исправить?
Ошибка в типах. Тебе в чат по TS.
ты пытаешься useRef подружить с компонентом?
ну он снаружи приходит
а так да, снаружи приходит ref и я хочу подсосать его в button или a
насколько я помню, LegacyRef — это callback-функция. видимо, сам компонент не поддерживает реализацию. в новой версии реакта рефы могут работать и через коллбэк, и через объект с проперти current. на ум приходит написать что-то типа враппера, который легаси реф адаптирует под новые рефы. то есть будет что-то такое const ref = useRef(null) <Button ref={btnRef => ref.current = btnRef} может, есть более элегантные решения. по типу как обновить версию библиотеки, использовать другую библиотеку или что-то, что я пока не понимаю
А если тс то ещё кастовать, красивее не видел
Обсуждают сегодня