Р: Могу ли я использовать блестящие.рутер и navbarPage для подключения к одним и тем же страницам? - PullRequest
0 голосов
/ 02 декабря 2018

Я создаю приложение, в котором я хочу иметь возможность связывать (в данном случае с использованием spark.router) со страницами в приложении по всему приложению, но у меня также есть панель навигации navbarPage.Хотя приведенный ниже код позволит вам ссылаться на страницы, на самом деле названия вкладок находятся не в полях вкладок, а под пустыми полями вкладок. Как получить заголовки в нужном месте ( изображение вывода кода )?

##########LIBRARY FUNCTIONS###########
library(shiny)
library(shinythemes)
# install.packages("shiny.router")
library(shiny.router)

############PAGES###########
########***TAB INTRODUCTION################
Introduction0 <- tabPanel(title = "Introduction",
                          h1("Introduction"), 
                          tags$ul(
                            tags$li(a(class = "item", href = route_link("Introduction"), "Introduction"),
                                    HTML(": blah")),
                            tags$li(a(class = "item", href = route_link("Calculator"), "Optional Calculator"),
                                    HTML(": blah"))
                          ))
#######***TAB CALCULATOR#################
Calculator0<-tabPanel("Calculator",
                      h1("Calculator"), 
                      tags$ul(
                        tags$li(a(class = "item", href = route_link("Introduction"), "Introduction"),
                                HTML(": blah")),
                        tags$li(a(class = "item", href = route_link("Calculator"), "Optional Calculator"),
                                HTML(": blah"))
                      ))

############ROUTER#############
router <- make_router(
  route("Introduction", Introduction0, NA),
  route("Calculator", Calculator0, NA)
)

####SHINYAPP()#####
ui <- navbarPage(
  theme = shinytheme("flatly"),
  windowTitle = "test",
  title = "test",  

  router_ui(),     
  tabPanel(title = tags$ul(a(class = "item", href = route_link("Introduction"), "Introduction"))),
  tabPanel(title = tags$ul(a(class = "item", href = route_link("Calculator"), "Calculator")))
)
server <- function(input, output, session) {
  router(input, output, session)
}

shinyApp(ui = ui, server = server)

В качестве альтернативы: Я подозреваю, что один изпроблема в том, что я использую tabPanel для создания объекта, а затем снова использую его в пользовательском интерфейсе () для создания вкладки.Однако, когда я изменяю ui () на следующий и просто вызываю объект tab, это не совсем работает, как я надеюсь.Вкладки выглядят правильно, но я получаю содержимое страницы, наложенное друг на друга , вот так: ( изображение вывода кода с редактированием ниже ):

ui <- navbarPage(
  theme = shinytheme("flatly"),
  title = "test",  

  router_ui(),
  Introduction0,
  Calculator0     
)

Я чувствую, что я близко, может быть, у вас всех есть полезное понимание того, как получить макет страницы с правильной страницей navbar и контентом. Бонусный вопрос: как мне избавиться от "активной вкладки панели вкладок - *" внизу страниц?

...