Загрузка прядильщика до нажатия кнопки действия - PullRequest
2 голосов
/ 18 марта 2020

Ниже приведен пример приложения, в которое я поместил загрузку счетчика. Но проблема в том, что еще до того, как нажата кнопка действия, вращающийся элемент замечен. Собственно, только когда нажата кнопка действия, она должна прийти. Я знаю, что это может быть достигнуто путем добавления eventReactive, но есть ли способ достичь этого только с помощью observeEvent

library(shiny)
library(dplyr)
library(shinycssloaders)
library(DT)

ui <- fluidPage(

    actionButton("plot","plot"),
    withSpinner(dataTableOutput("Test"),color="black")
)



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

    observeEvent(input$plot, {
    output$Test <- DT::renderDT(DT::datatable(head(iris),
                                              rownames = FALSE, options = list(dom = 't', 
                                                                               ordering=FALSE)))

    })
}
shinyApp(ui = ui, server = server)

1 Ответ

1 голос
/ 18 марта 2020

Одним из решений является использование uiOutput, чтобы пользовательский интерфейс для счетчика и таблицы создавался только при нажатии на кнопку:

library(shiny)
library(dplyr)
library(shinycssloaders)
library(DT)

ui <- fluidPage(
  actionButton("plot","plot"),
  uiOutput("spinner")
)

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

  observeEvent(input$plot, {

    output$spinner <- renderUI({
      withSpinner(dataTableOutput("Test"), color="black")
    })

    output$Test <- DT::renderDT({
      Sys.sleep(3)
      DT::datatable(head(iris), 
                    rownames = FALSE, options = list(dom = 't', ordering=FALSE))
    })

  })
}
shinyApp(ui = ui, server = server)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...