Установка активного состояния элемента Nav в зависимости от маршрута с помощью ReactBootstrap
Каков наилучший способ обеспечить выбор правильного элемента Nav с помощью React Bootstrap и Hyperstack Router?
Я знаю, что могу Link
метод, но я хочу использовать конкретную Bootstrap Nav
пункт вместо
Есть ли хороший пример, которым кто-нибудь может поделиться?
1 ответ
Решение
React router фактически обрабатывает это автоматически! Я использовал это в одном из своих приложений, может быть, это может помочь для вдохновения:
class BS < Hyperstack::Component::NativeLibrary
# subclasses of Hyperstack::Component::NativeLibrary
# are wrappers around JS component libraries.
# once imported BS acts like an ordinary ruby module
imports 'ReactBootstrap'
end
class App < HyperComponent
include Hyperstack::Router
include Hyperstack::Router::Helpers
ROUTES = {
'/' => ['Home', Home],
'/overview' => ['Overview', Overview]
}
render do
DIV {
H1 { "Hello there from Hyperstack!" }
BS::Nav(variant: 'pills') {
ROUTES.each do |k, v|
BS::Nav.Item() {
NavLink(k, class: 'nav-link', exact: true) { v[0] }
}
end
}
ROUTES.each do |k, v|
Route(k, mounts: v[1], exact: true)
end
}
end
end