TypeError: Не удается прочитать свойство 'scrollIntoView' из null Как решить?

const ref = useRef(null);

const executeScroll = () => {
        ref.current.scrollIntoView({ block: 'end', behavior: 'smooth' })
    }

    useEffect(() => {
        executeScroll()
    }, [])


<div className="comment" ref={ref}>
//Data
</div>

Я пытаюсь перейти к определенному div. Я получил эту ошибку. Любая идея, почему эта ошибка отображается или как ее решить?

TypeError: не удается прочитать свойство «scrollIntoView» со значением null


person Shahariar Rahman Sajib    schedule 02.03.2021    source источник


Ответы (1)


Когда useEffect запускается, div еще не подключен к DOM, поэтому ref все еще null.

useEffect(() => {
  if (ref.current) {
    executeScroll();
  }
}, [ref.current])
person LMulvey    schedule 02.03.2021
comment
Если я использую ref={ref} в дочернем компоненте, это будет работать или нет? - person Shahariar Rahman Sajib; 02.03.2021
comment
Да, это будет работать нормально, замените свой код useEffect тем, что я написал выше. - person LMulvey; 02.03.2021