使用 ReactBootstrap 根据路由在导航项上设置活动状态
Setting active state on a Nav item depending on the Route using ReactBootstrap
确保使用 React Bootstrap 和 Hyperstack Router 选择正确导航项的最佳方法是什么?
我知道我可以使用 Link
方法,但我想改用特定的 Bootstrap Nav
项目。
任何人都可以分享一个很好的例子吗?
React 路由器实际上会自动处理这个问题!
我在我的一个应用程序中使用过它,也许它可以帮助激发灵感:
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
确保使用 React Bootstrap 和 Hyperstack Router 选择正确导航项的最佳方法是什么?
我知道我可以使用 Link
方法,但我想改用特定的 Bootstrap Nav
项目。
任何人都可以分享一个很好的例子吗?
React 路由器实际上会自动处理这个问题! 我在我的一个应用程序中使用过它,也许它可以帮助激发灵感:
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