Потеря ссылки на использование крючка useEffect после setTimeout - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь воспроизвести анимацию, если этого требует реквизит после монтажа компонента. Но мой ref, кажется, получает обнуление после setTimeout.

    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 голосов
/ 06 января 2020

Это происходит потому, что во втором аргументе в useEffect вы просто помещаете пустой массив [], это должно быть добавление onShow во второй аргумент useEffect

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...