R闪亮的第二个UI动作按钮无法正常工作

时间:2018-03-24 14:42:49

标签: r shiny

我正在使用登录表单创建一个Shiny应用程序。登录后,切换到第二个表单。

第二个表单上的提交按钮不起作用。我尝试将提交按钮更改为操作按钮,但它没有帮助。

我的应用代码如下:

library(shiny)
ui <- fluidPage(
uiOutput("ui")
)

server <- function(input, output, session) {
USER <- reactiveValues(Logged = FALSE)
observe({
if (USER$Logged == FALSE) {
  output$ui <- renderUI({
    tagList(
      h2("Hello", align = "center"),
      div(
        id = "login",
        wellPanel(
          textInput("userName", "Username"),
          passwordInput("passwd", "Password"),
          br(), actionButton("Login", "Log in")
        )
      )
    )
  })
} else if (USER$Logged == TRUE) {
  output$ui <- renderUI({
    tagList(
      tabPanel(""),
      pageWithSidebar(
        headerPanel(
          ""
        ),
        sidebarPanel(
          actionButton("logout", "Logout"),
          sliderInput("range", 
                      label = "Range of interest:",
                      min = 0, max = 100, value = c(0, 100)),
          submitButton("submit")
        ),
        mainPanel(tableOutput("aaa"),textOutput("min_max"))
      )
    )
  })

  output$min_max <- renderText({ 
    paste("You have chosen a range that goes from",
          input$range[1], "to", input$range[2])
  })
}
})

observeEvent(input$Login, {
USER$Logged <- TRUE
})

observeEvent(input$logout, {
USER$Logged <- FALSE
})
}

shinyApp(ui, server)

1 个答案:

答案 0 :(得分:0)

引用闪亮的文档:

“提交按钮是不常见的闪亮输入,我们建议您在延迟反应时使用actionButton而不是submitButton。请参阅此文章(http://shiny.rstudio.com/articles/action-buttons.html)以获取更多信息(包括如何”翻译“的演示代码使用submitButton来使用actionButton进行编码。“

在你的代码中,你需要另一个实例 observeEvent,即observeEvent(输入$ submit)来捕获按钮的发生。

希望有所帮助