shinydashboard仪表板标题中的登录按钮

shinydashboard仪表板标题中的登录按钮,r,shiny,shinydashboard,R,Shiny,Shinydashboard,我正在给一个闪亮的仪表板做最后的修饰。仪表板使用googleAuthR通过google oauth进行身份验证。一切正常。。。但我现在必须在dashboardSidebar或dashboardBody中放置login按钮,我真的很想在dashboardHeader中的下拉列表中找到它。不幸的是,shinydashboard的头球似乎对头球中的球很挑剔。有没有一个黑客(或少于一个黑客)把东西放在那里 这里有一个绝对不起作用的东西,例如: ui = dashboardPage( dashboar

我正在给一个闪亮的仪表板做最后的修饰。仪表板使用googleAuthR通过google oauth进行身份验证。一切正常。。。但我现在必须在dashboardSidebar或dashboardBody中放置login按钮,我真的很想在dashboardHeader中的下拉列表中找到它。不幸的是,shinydashboard的头球似乎对头球中的球很挑剔。有没有一个黑客(或少于一个黑客)把东西放在那里

这里有一个绝对不起作用的东西,例如:

ui = dashboardPage(
  dashboardHeader(
    title = "My Awesome Dashboard"
    , p('Pretend this is a login button')
  )
  , dashboardSidebar(
    p('I don't want the login here.')
  )
  , dashboardBody(
    p('I don't want the login here either.')
  )
)

server = function(input, output, session) {
}

shinyApp(
  ui = ui
  , server = server
)

好吧,我想我是根据我的想法想出来的,但我还不确定为什么它会起作用。以下是总体思路:

my_header = dashboardHeader(
  title = "My More Awesome Dashboard"
)

my_header$children[[3]]$children[[3]] = p('Login goes here', style = 'float: right')

ui = dashboardPage(db_header, dashboardSidebar, dashboardBody)

现在看看我是否可以在某处找到解释$children内容的文档…

您可以在标题中放置任何内容,但它必须是class
下拉列表的
li
标记。请参见以下示例:

ui = dashboardPage(
  dashboardHeader(
    title = "My Awesome Dashboard",
    tags$li(class = "dropdown",
            tags$li(class = "dropdown", textOutput("logged_user"), style = "padding-top: 15px; padding-bottom: 15px; color: #fff;"),
            tags$li(class = "dropdown", actionLink("login", textOutput("logintext"))))
  )
  , dashboardSidebar(), dashboardBody())

server = function(input, output, session) {
  logged_in <- reactiveVal(FALSE)

  # switch value of logged_in variable to TRUE after login succeeded
  observeEvent(input$login, {
    logged_in(ifelse(logged_in(), FALSE, TRUE))
  })

  # show "Login" or "Logout" depending on whether logged out or in
  output$logintext <- renderText({
    if(logged_in()) return("Logout here.")
    return("Login here")
  })

  # show text of logged in user
  output$logged_user <- renderText({
    if(logged_in()) return("User 1 is logged in.")
    return("")
  })

}

shinyApp(ui = ui, server = server)
ui=仪表板页面(
仪表板标题(
title=“我最棒的仪表板”,
标记$li(class=“下拉列表”,
标记$li(class=“dropdown”、textOutput(“登录用户”)、style=“padding top:15px;padding bottom:15px;color:#fff;”,
标签$li(class=“dropdown”、actionLink(“login”、textOutput(“logintext”)))
)
,仪表板侧栏(),仪表板主体()
服务器=功能(输入、输出、会话){

登录谢谢!这比我昨晚偶然发现的黑客好多了。