我正在使用登录表单创建一个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)
答案 0 :(得分:0)
引用闪亮的文档:
“提交按钮是不常见的闪亮输入,我们建议您在延迟反应时使用actionButton而不是submitButton。请参阅此文章(http://shiny.rstudio.com/articles/action-buttons.html)以获取更多信息(包括如何”翻译“的演示代码使用submitButton来使用actionButton进行编码。“
在你的代码中,你需要另一个实例 observeEvent,即observeEvent(输入$ submit)来捕获按钮的发生。
希望有所帮助