2017-07-19 55 views
0

我想知道是否可以在整個閃亮的wellPanel上使用shinyjs隱藏和顯示功能?我有興趣這樣做有條件地顯示兩個面板中的一個,從我可以告訴我不能在條件面板的條件中使用反應值。你可以使用shinyjs來隱藏/顯示整個面板嗎?

下面是我想到的一個例子,但是我無法弄清楚如何引用給shinyjs函數中井板的id。

library(shiny) 
library(shinyjs) 

ui <- fluidPage(
    useShinyjs(), 
    actionButton("test", label = "test"), 
    shinyjs::hidden(wellPanel(id = "panelA", "I AM PANEL A")), 
    wellPanel(id="panelB", "I AM PANEL B") 
) 

sever <- function(input,output){ 
    observeEvent(input$test, { 
    shinyjs::showElement(id= "panelA") 
    shinyjs::hideElement(id= "panelB") 
    }) 
} 

shinyApp(ui=ui,server=server) 
+0

我在代碼中發現的唯一問題是使用'sever'而不是'server'。改變它後,一切都按預期工作。 – Geovany

回答

0

正如Geovany所評論的那樣,服務器拼寫錯誤。另外,您可能需要使用shinyjs的切換功能。

library(shiny) 
library(shinyjs) 

ui <- fluidPage(
    useShinyjs(), 
    actionButton("test", label = "test"), 
    shinyjs::hidden(wellPanel(id = "panelA", "I AM PANEL A")), 
    wellPanel(id="panelB", "I AM PANEL B") 
) 

server <- function(input,output){ 
    observeEvent(input$test, { 
    shinyjs::toggle(id= "panelA") 
    shinyjs::toggle(id= "panelB") 
    }) 
} 

shinyApp(ui=ui,server=server) 

希望這會有所幫助。

+0

謝謝,我想我只是看着它太久了。如果其他人對未來感興趣,這是一個更完整的例子。 –

0
library(shiny) 
library(shinyjs) 

ui <- fluidPage(
    useShinyjs(), 
    actionButton("showA", label = "Show A"), 
    actionButton("showB", label = "Show B"), 
    shinyjs::hidden(wellPanel(id = "panelA", "I AM PANEL A")), 
    wellPanel(id="panelB", "I AM PANEL B") 
) 

server <- function(input,output){ 
    observeEvent(input$showA, { 
    shinyjs::showElement(id= "panelA") 
    shinyjs::hideElement(id= "panelB") 
    }) 

    observeEvent(input$showB, { 
    shinyjs::showElement(id= "panelB") 
    shinyjs::hideElement(id= "panelA") 
    }) 
} 

shinyApp(ui=ui,server=server)