我有一个闪亮的应用程序,我已经将它部署在闪亮的服务器上,现在的问题是我遇到了麻烦。
我使用了文档中的quickstart示例,到目前为止该示例运行良好。
用户界面中的菜单组件
menu <- (
tags$ul(
tags$li(a(class = "item", href = route_link("/sample-apps/shiny-router/#!/home"), "Home page")),
tags$li(a(class = "item", href = route_link("side"), "Side page"))
)
)
问题在于,在第一个示例ID中,#!
会添加到路径的开头
http://localhost:3838/#!/sample-apps/shiny-router/#!/home
期望的输出是
http://localhost:3838/sample-apps/shiny-router/#!/home
当我按下事件按钮时,它运行正常
observeEvent(input$switch_page, {
if (is_page("home")) {
change_page("side")
} else if (is_page("side")) {
change_page("home")
}
})
有没有一种方法可以通过“路由”菜单来模仿这种行为,所以我只是将路由附加到当前路径上?
我尝试了不同的解决方案,但是似乎,每当单击标签时,它总是将#!
前缀添加到url的开头。
答案 0 :(得分:2)
发生这种情况的原因是因为route_link
就像一个哈希路由器,因此解决方案将只是将实际字符串粘贴为路径,而不是使用route_link解决方案
tags$li(a(class = "item", href = route_link("/sample-apps/shiny-router/#!/home"), "Home page"))
#instead use
tags$li(a(class = "item", href = "/sample-apps/shiny-router/#!/home", "Home page"))