小编R U*_*ist的帖子

R Shiny:如何通过服务器中的条件隐藏 tabPanel

我修改了此处给出的答案,以使用R 中的Shiny包编写一个非常简单的登录/注销系统。如果 USER$Logged 为 FALSE(即用户已注销),我想隐藏面板“B”并在 USER 时显示它$Logged 为 TRUE(即用户已登录)。换句话说,一旦你运行代码,它不应该显示面板 B,直到用户正确输入用户名和密码。我尝试使用conditionalPanel,但它没有隐藏面板B。它目前一直在显示它,而不管USER$Logged。有谁知道如何修理它?

library(shiny)
library(shinydashboard)
my_username <- "test"
my_password <- "abc"
shinyApp(
  shinyUI(
    navbarPage( tabPanel("A", uiOutput('loginpage')),
               tabPanel("B", uiOutput('page1'),conditionalPanel(condition = "output.cond1==TRUE"))
                            )
                            ),
  shinyServer(function(input, output, session) {
    USER <<- reactiveValues(Logged = FALSE)
    observe({
      if (USER$Logged == FALSE) {
        output$loginpage <- renderUI({
          box(title = "",textInput("userName", "Username"),
              passwordInput("passwd", "Password"),
              br(),
              actionButton("Login", "Log in"))})
      } else if (USER$Logged == TRUE) {
        output$loginpage <- renderUI({fluidPage(
          box(title = "",br(),br(),actionButton("logout", "Logout"))
        )

        })
      }
    })

    observeEvent(input$Login, …
Run Code Online (Sandbox Code Playgroud)

r tabpanel shiny

5
推荐指数
1
解决办法
2129
查看次数

标签 统计

r ×1

shiny ×1

tabpanel ×1