updateTabsetPanel现在,没有延迟

时间:2016-10-19 02:02:29

标签: r shiny

在下面的最小示例中,请注意当file.choose()行被注释掉时,代码按预期工作:单击输入选项卡上的确定按钮切换到结果标签。

但是,取消注释file.choose()行并且updateTabsetPanel()功能不再有效。有没有办法在file.choose()开始之前让标签在屏幕上更改?

ui <- fluidPage(fluidRow(
         tabsetPanel(id="main",
            tabPanel("Input", actionButton("okButton", "OK")),
            tabPanel("Results", h3(textOutput("results")))
         )))

server <-function(input, output, session) {

   output$results = renderText("Results Tab")

   observeEvent(input$okButton, {
      updateTabsetPanel(session, "main", "Results")
   #   file.choose()
   })

}

shinyApp(ui = ui, server = server)

1 个答案:

答案 0 :(得分:0)

您可以分两步完成:1。切换标签; 2.根据选项卡切换事件,打开文件选择窗口。

ui <- fluidPage(fluidRow(
  tabsetPanel(id="main",
              tabPanel("Input", actionButton("okButton", "OK")),
              tabPanel("Results", h3(textOutput("results")))
  )))

server <-function(input, output, session) {

  output$results = renderText("Results Tab")

  observeEvent(input$okButton, {
    updateTabsetPanel(session, "main", "Results")
  })

  observeEvent(input$main, {
    if (input$main == "Results") {
      file.choose()
    }
  })

}

shinyApp(ui = ui, server = server)