簡體   English   中英

在R Shiny conditionalPanel中評估超出輸入條件的條件

[英]Evaluating beyond input conditions in R Shiny conditionalPanel

我正在構建R Shiny儀表板,並嘗試實現conditionalPanels。 當然,我是JavaScript新手。 SO上有很多關於conditionalPanels的文章,但是我見過的每一個都使用input.something表達式中的input.something ,通常是這樣的:

conditionalPanel(
    condition = "input.tabs == 'correlation'",

    actionButton("generate_correlation", "Generate Heat Map")
  )

我知道條件語句中的表達式是一個作為JavaScript表達式求值的字符串,但是我想知道是否有可能訪問除input之外的其他變量和對象? 例如,它可以評估反應功能嗎? 我想按下一個按鈕,然后有條件地出現一個新選項卡。 我已經創建

         tabPanel("Tab 1",
                  actionButton("dropColumnsComplete", "Next"))

然后,我在服務器端創建了一個反應式表達式來處理此問題:

  dropColumnsComplete <- reactive(input$dropColumnsComplete,{
    return(TRUE)
  })

單擊按鈕會觸發input$dropColumnsComplete事件,該事件應調用在調用dropColumnsComplete()函數時返回TRUE的反應式。 然后,我添加

     conditionalPanel(condition = "dropColumnsComplete()",
                      tabPanel("Tab 2")
                      ),

我希望按下該按鈕將導致出現選項卡2。 我知道我沒有正確訪問條件表達式內的dropColumnsComplete()應該是document.dropColumnsComplete()嗎? shiny.dropColumnsComplete() 令人驚訝的是缺少有關此方面的文檔,因此我對如何在JavaScript中訪問input$...之外的變量感到困惑。

沒有理由編寫有條件的顯示/隱藏元素的反應式。 看看Dean Attali代替shinyjs

使用shinyjs

library(shiny)
library(shinyjs)

ui <- fluidPage(
  useShinyjs(),
  actionButton("show", "Click me once to show stuff!"),
  actionButton("toggle", "Click me any times to toggle stuff!"),
  hidden(
    div(id = "d1",
      "Content hidden until button is clicked"
    )
  ),
  hidden(
    div(id = "d2",
        "Content toggled when button is clicked"
    )
  )
)

server <- function(input, output) {
  observeEvent(input$show, {
    show("d1")
  })

  observeEvent(input$toggle, {
    toggle("d2")
  })
}
shinyApp(ui, server)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM