reactjs - Hur kan jag undvika ett TypeScript-fel med React useRef?
När jag använder React Hooks stöter jag på ett TypeScript-fel när jag initierar en ref som null och sedan försöker komma åt den senare. Detta är ett nedkortat, illustrativt exempel:
const el = useRef(null);
useEffect(() => {
if (el.current !== null) {
//@ts-ignore
const { top, width } = el.current.getBoundingClientRect();
}
}, []);
return <div ref={el}></div>
@ts-ignore undertrycker felet Object is possibly 'null'. Är det möjligt att skriva detta utan att få felet?
Svar #1
Jag hittade svaret här: https://fettblog.eu/typescript-react/hooks/#useref
Nyckeln är att tilldela en typ till ref: const el=useRef<HTMLDivElement>(null); och sedan kontrollera noggrant:
if (el && el.current){
const { top, width } = el.current.getBoundingClientRect();
}
