react/next.js: как в подключаемом js-скрипте обратиться к элементу сайта через имя класса?

Есть реакт-компонент "элемент навигации", внутри которого выводится изображение (стрелка). Таких изображений может быть сколько угодно. По нажатию это изображение, соседние с изображением элементы, которые до этого были visible=false, становятся видимы.

Изначально я эту логику реализовал в обычной вёрстке, где js-файл подключался как "<script src="main.js">", при этом всё работало. Но теперь скрипт нужно перенести в react/next.js-проект. Какой способ для этого самый адекватный? Я попробовал подключить js напрямую, но он перестал работать, не видит элемент с искомым классом, ошибка "Uncaught TypeError: Cannot read properties of null". Может нужно как-то переписать сам скрипт?

компонент next.js

const NavItem = ({children, href, text, sublist}) => {
    return (
        <li>
            <A href={href} text={text}/>
            {sublist ? <Image src={"/ico-arrow.svg"} width="30" height="30" className="icoExpand" /> : ""}
            {children}
        </li>
    );
};

js-скрипт, который работал в статичной вёрстке:

const expandButtonsArr = document.body.getElementsByClassName("icoExpand");

for (let button of expandButtonsArr) {
    button.addEventListener("click", ()=>{

        button.classList.contains("icoExpand") ?
            button.classList.toggle("icoExpanded") :
            button.classList.add("icoExpanded")

        let nodes = button.parentNode.children;
        for (element of nodes) {
            if (element.classList.contains("menuSublist")) {
                // element.classList.add("sublist-expanded")
                element.classList.contains("sublistExpanded") ?
                    element.classList.toggle("sublistExpanded") :
                    element.classList.add("sublistExpanded")
            }
        }
    })
}

Ответы (0 шт):