setTimeout之后在useEffect挂钩中丢失ref

时间:2020-01-06 11:08:33

标签: javascript reactjs react-hooks

安装组件后,如果道具要求,我正在尝试播放动画。但是我的裁判似乎在setTimeout之后被重置为null。

    let landingText = useRef(null);

    useEffect(() => {
    //ref shows div element here
        setTimeout(() => {
        //ref gets reset to null here
            if (!onShow) {
                playAnimation();
            }
        }, 1000);
    }, []);

我已通过添加新变量并将其传递给以下内容来解决此问题-

    useEffect(() => {
        const el = landingText;
        setTimeout(() => {

但是我很好奇为什么在setTimeout之后会发生这种情况。

1 个答案:

答案 0 :(得分:0)

发生这种情况的原因是,在useEffect的第二个参数中,您只是将空数组[]放入了它,应该在useEffect的第二个参数中添加onShow