隐藏或显示闪亮元素而不按提交

时间:2015-11-27 06:04:07

标签: r shiny

我有一个闪亮的应用程序,我想根据用户输入隐藏或显示一些元素。这是我尝试使用闪亮的conditionalPanel。但是,只有在按下提交按钮后才能工作。我想隐藏或显示textInput元素而不按提交按钮。以下是我尝试过的一个例子。

UI.R

library(shiny)
shinyUI(fluidPage(
  titlePanel("submitButton example"),
  fluidRow(
    column(3, wellPanel(
      sliderInput("n", "N:", min = 10, max = 1000, value = 200,
                  step = 10),
      checkboxInput("checkbox", label = "Message", value = FALSE),
      conditionalPanel(
        condition = "input.checkbox == true",
        textInput("text", "Text:", "text here")),

      submitButton("Submit")
    )),
    column(6,
           plotOutput("plot1", width = 400, height = 300),
           verbatimTextOutput("text")
    )
  )
))

Server.R

shinyServer(function(input, output) {
  output$plot1 <- renderPlot({
    hist(rnorm(input$n))
  })

  output$text <- renderText({
    paste("Input text is:", input$text)
  })
})

我想在用户检查textInput后立即显示checkbox并在取消选中时将其隐藏,而不依赖submit按钮。

1 个答案:

答案 0 :(得分:3)

你可以尝试

UI:

shinyServer(function(input, output,session) {
  output$test=renderUI({ 
    if(input$checkbox_1==T){
      list(textInput("text", "Text:", "text here"),
           numericInput("num","num",0), numericInput("num1","num1",0))}
  })

  observeEvent(input$Submit,{
    output$plot1 <- renderPlot({
      hist(rnorm(isolate(input$n)))
    })
    output$text <- renderText({
      paste("Input text is:", isolate(input$text))
    })

  })

})

服务器:

<movielist>
<movie>
    <title>ABC </title>
    <year>2005</year>
    <length>120 min</length>
    <director>ABV</director>
    <rating>1</rating>
    <genre>AAA</genre>
    <genre>BBB</genre>
    <genre>CCC</genre>
    <actor>John</actor>
    <actor>TOM</actor>
</movie>
<movie>
    <title>cba</title>
    <year>2015</year>
    <length>220min</length>
    <director>ABV</director>
    <rating>1</rating>
    <genre>AAA</genre>
    <genre>BBB</genre>
    <genre>CCC</genre>
    <actor>John</actor>
    <actor>TOM</actor>
</movie>
<movielist>