【发布时间】:2021-04-14 17:14:07
【问题描述】:
我正在我的应用中制作一个简单的动画。
let flipInterval = useRef();
const startAnimation = () => {
flipInterval.current = setInterval(() => {
setIsFlipping((prevFlipping) => !prevFlipping);
}, 10000);
};
对于flipInterval.current,我收到“类型'超时'不可分配给类型'未定义'”。所以我检查了如何使用 Timeout 类型,我看到人们正在使用但那不起作用。
let flipInterval = useRef<typeof window.settimeout>();
我也传递了号码useRef<number>() 这次我得到“类型'超时'不可分配给类型'号码'”
这也没用
let flipInterval = useRef<typeof window.setInterval>();
【问题讨论】:
-
setInterval 返回一个用于清除计时器的 id。您不应该将其存储在参考文献中。
-
@BeS 你有什么建议?即使组件由于某种原因重新呈现,我也想坚持时间。
-
不清楚你想要实现什么。如果你只是想清除组件被移除的时间间隔,那么你应该使用返回清理函数的
useEffect()。
标签: reactjs typescript animation settimeout use-ref