reactjs - react typescript 'current' finns inte i typen 'never'
Jag använder React och TypeScript. Jag ville få höjden på div-taggen, så jag använde useRef. Men jag får ett ts-fel i current.
Property 'current' is not present in type 'never'. ts(2339)
const ref = useRef<HTMLDivElement>(null);
useEffect(() => {
if (ref != null || ref.current != null) {
setHeight(ref.current.clientHeight);
}
}, [user]);
Svar #1
Detta betyder att ditt villkor ref.current != null kommer att "ALDRIG" vara sant om ref != null är sant
Jag kan se i din logik att du försöker kontrollera om ref.current inte är null innan du refererar till ref.current.clientHeight
Så det korrekta villkoret bör vara:
useEffect(() => {
if (ref !== null && ref.current !== null) {
setHeight(ref.current.clientHeight);
}
}, [user]);
Villkoret || körs från vänster till höger, om du vill fortsätta använda ditt villkor, ändra ordningen till:
useEffect(() => {
if (ref.current !== null || ref !== null) {
setHeight(ref.current.clientHeight);
}
}, [user]);
Svar #2
Observera att felen försvinner när du ändrar koden till att vara:
if (ref !== null && ref.current != null) {
setHeight(ref.current.clientHeight);
}
Jag ändrade || till &&.
