如何在 Shiny 中重置 flexdashboard 仪表的标签?

How to reset label of flexdashboard gauges in Shiny?

我想根据所做的选择为使用 flexdashboard 包创建的仪表设置不同的标签。 However, when a new option is chosen the first label that is loaded remains but the input updates.有什么方法可以清除缓存以便更改标签?

下面是 Shiny 中问题的代表:

library(shiny)
library(flexdashboard)

ui <- fluidPage(

  sidebarLayout(
    sidebarPanel(
      radioButtons("labelChoice",
                   label = "Choose a label",
                   choices = c("Label 1", "Label 2")
      )
    ),
    
    mainPanel(
      gaugeOutput("gauges")
    )
  )
)

server <- function(input, output) {
  
  observe({
    
    if(input[["labelChoice"]] == "Label 1") {
      output$gauges <- renderGauge({ gauge(15, min = 0, max = 100, label = "Hello I'm label 1!") })
    } else {
      output$gauges <- renderGauge({ gauge(55, min = 0, max = 100, label = "Hello I'm label 2!") })
    }
    
  })
  
}

# Run the application 
shinyApp(ui = ui, server = server)

响应式对象需要 class shiny-bound-input 的 HTML 个标签。然而,flexdashboard 仪表通常会创建一个超出 shiny 反应上下文范围的 svg。

此问题已通过较新版本修复(参见 this issue 2021 年 9 月 20 日)。尝试使用 remotes::install_github("rstudio/flexdashboard").

进行更新