Здесь не используется React Router, хотелось бы, чтобы все было просто. Я использую Gatsby, у которого есть activeClassName
атрибут с системой <Link>
, однако, я думаю, что он не работает, потому что я использую его на главной навигационной панели, тогда у меня есть субнав с категориями.
Решение, которое я нашел для subnav, это небольшая функция, позволяющая определить, находитесь ли вы в каталоге:
const activeStyle = {
color: "green",
background: "red",
}
function pathIncludes(word) {
return window.location.href.includes(word) ? { activeStyle } : ""
}
, а затем внутри моего return ():
<ul>
<li styles={pathIncludes('motion')}>
<Link to="./motion">Motion</Link>
</li>
<li styles={pathIncludes('design')}>
<Link to="./design">Design</Link>
</li>
<li styles={pathIncludes('illustration')}>
<Link to="./illustration">Illustration</Link>
</li>
</ul>
It почти работает, отображается на странице, которую я получаю <li class="[object Object]">
Как мне передать jsx?
Или есть лучший способ сделать это, что не требует установки дополнительных зависимостей?