У меня есть пример с использованием реакции и ссылок:
Это работает:
refTable = React.createRef<HTMLElement>();
if(typeof refTable !== 'function' && refTable !== null && refTable.current) {
console.log(refTable.current);
}
Это не удается
type shapeAllowRefs = React.RefObject<HTMLElement>;
const allowRef = (ref:shapeAllowRefs):boolean => (typeof ref !== 'function' && ref !== null && ref.current ? true : false);
const refTable = React.createRef<HTMLElement>();
if(allowRef(refTable)) {
console.log(refTable.current);
}
Ошибка:
- - Аргумент типа HTMLTableElement | null 'не может быть назначен параметру типа' HTMLElement '. Тип 'null' не может быть назначен типу 'HTMLElement'.
Я создал пример на игровой площадке машинописного текста, и он работает там, используя аналогичную концепцию, но, к сожалению, я не могу воспроизвести проблему выше. Кажется, это проблема с реакцией refs.
Эквивалентный более простой пример - работает
type shapeX = null | {
current: string
} | (() => void);
const allowRef = (ref: shapeX): boolean => (
typeof ref !== 'function' && ref !== null && ref.current ? true : false
);
const obj:shapeX = { current: 'john' };
if (allowRef(obj)) {
console.log('obj = ', obj);
}
любые идеи, почему он не работает, используя - if (allowRef (refTable))
спасибо