可以在Shiny中强制执行隐藏面板吗?

时间:2017-10-16 03:22:28

标签: r shiny

我有一个面板后面的闪亮应用程序的配置选项。此外,使用uiOutput / renderUI在服务器端生成配置选项。 Shiny推迟评估当前所选面板中没有的项目,但有时强制评估是可取的。是否可以强制进行服务器端评估?

以下是一个例子:

library(shiny)

ui <- fluidPage(
    tabsetPanel(tabPanel("Main", 
                         plotOutput("dots")),
                tabPanel("Settings",
                         uiOutput("even.or.odd")
                )
    )   
)

server <- function(input, output) {

   output$dots <- renderPlot({
     plot(seq(ifelse(input$even, 0, 1), 20, 2))
   })
   output$even.or.odd <- renderUI(checkboxInput('even', "Even?",TRUE))
}

shinyApp(ui = ui, server = server)

或者来自RStudio do runGist('https://gist.github.com/dkulp2/d897c21dfd1a20f9531b6454ea02a533')

这在启动时失败,因为input$even未定义,直到&#34;设置&#34;小组透露。 (然后应用程序运行正常。)有没有办法让Shiny在不透露面板的情况下评估even.or.odd函数?

1 个答案:

答案 0 :(得分:1)

您可以通过suspendWhenHidden = FALSE

设置outputOptions(output, "even.or.odd", suspendWhenHidden = FALSE) 来强制执行隐藏的输出对象
<ion-content overflow-scroll="true">
  <video controls="controls" onerror="playbackFailed()" autoplay="autoplay" webkit-playsinline="webkit-playsinline" class="videoPlayer">
   <source src="https://example.com/wrong-video-url.mp4" type="video/mp4">
  </video>
</ion-content>