使用ReactBootstrap根据路线在Nav项目上设置活动状态

时间:2019-04-14 10:00:05

标签: ruby-on-rails ruby reactjs opalrb hyperstack

使用React Bootstrap和Hyperstack Router确保正确选择导航项目的最佳方法是什么?

我知道我可以使用Link方法,但是我想改用特定的Bootstrap Nav项目。

任何人都可以分享的一个很好的例子吗?

1 个答案:

答案 0 :(得分:2)

反应路由器实际上会自动处理此问题! 我已经在我的一个应用程序中使用了它,也许它可以为您带来启发:

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