我正在使用 ref 为滚动上的元素设置动画。
const foo = () => {
if (!ref.current) return;
const rect = ref.current.getBoundingClientRect();
setAnimClass(
rect.top >= 0 && rect.bottom <= window.innerHeight ? styles.animClass : ""
);
};
此代码在 next.js 应用程序中运行良好。但是当我在create-react-app
类型脚本模板中使用它时,它抱怨说Object is possibly 'null'.
很明显,如果ref.currentif (!ref.current) return;
不存在,程序将被返回。但是 TypeScript 仍然在下一行给出错误ref.current.getBoundingClientRect()
,指向ref
.
如何在不从 typescript 配置中删除 null 检查的情况下解决此问题?
完整文件 - https://github.com/mayank1513/react-contact-app/blob/master/src/components/ContactListItem.tsx
这是完整的项目回购 - https://github.com/mayank1513/react-contact-app
到目前为止,我已经绕过了"strict": false
在 tsconfig 中使用的问题。但需要在严格模式下进行。
此文件中也存在类似问题。即使"strict": false
在 tsconfig 中设置也无法解决此问题。现在我只是依靠document.getElementById()
- 大约第 65 行