2017-06-16 173 views
1

我想用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)上述代碼是否可以調整,以便一旦第二次按下按鈕,文本輸出又會被隱藏起來?沒有灰色框在這裏 -

+1

1)我無法證實,試試這個。 2)你可以使用'shinyjs'包,在'fluidPage'中包含'useShinyjs()',在ovbserver中設置文本爲'hidden(verbatimTextOutput(「text」))'並添加'toggle(「text」)' ,以便每次點擊時切換_text_的隱藏/可見狀態。 – lukeA

回答

1

您可以shinyjshiddentoggle

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"}) 
    }) 

    } 
)