如何使用shiny actionButton来显示和隐藏文本输出?
问题描述:
我想用actionButton
写一个简单的闪亮应用程序。当按下actionButton
时,一些文本输出应直接打印在下方。下面的代码需要我的角色的方式来解决:如何使用shiny actionButton来显示和隐藏文本输出?
shinyApp(
ui = shinyUI(fluidPage(
actionButton("button", "don't press the button"),
verbatimTextOutput("text")
)
),
server = function(input, output, session){
observeEvent(input$button, {
output$text <- renderText({"ahh you pressed it"})
})
}
)
有两件事情我想改变,但不知道如何:
1)上面的代码显示了一个空的灰色框前按钮被按下 - 我想那里没有任何按钮被按下之前。它看起来像conditionalPanel
可能是正确的方法,但不知道如何实现这一点。
2)上述代码是否可以调整,以便一旦第二次按下按钮,文本输出又会被隐藏起来?没有灰色框在这里 -
答
您可以shinyjs
,hidden
和toggle
library(shiny)
library(shinyjs)
shinyApp(
ui = shinyUI(fluidPage(useShinyjs(),
actionButton("button", "don't press the button"),
hidden(
div(id='text_div',
verbatimTextOutput("text")
)
)
)
),
server = function(input, output, session){
observeEvent(input$button, {
toggle('text_div')
output$text <- renderText({"ahh you pressed it"})
})
}
)
1)我无法证实,试试这个。 2)你可以使用'shinyjs'包,在'fluidPage'中包含'useShinyjs()',在ovbserver中设置文本为'hidden(verbatimTextOutput(“text”))'并添加'toggle(“text”)' ,以便每次点击时切换_text_的隐藏/可见状态。 – lukeA