我有一个闪亮的应用程序,我想根据用户输入隐藏或显示一些元素。这是我尝试使用闪亮的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
按钮。
答案 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>