Shiny: визуализация выходов, когда скрыто - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь отобразить несколько выходных данных в блестящем приложении, которое содержится в разделе shinyjs::hidden при запуске приложения, а не после того, как этот раздел стал видимым.

РЕДАКТИРОВАТЬ : Я неправильно настроил приложение в исходном примере, поэтому изменил его.

Я хочу иметь возможность запустить реактивный оператор перед запуском последнего наблюдения, чтобы изменить пользовательский интерфейс с альфа-текста на бета-текст и график. В идеале это означало бы, что в консоли будет отображаться "Done plotting" до "Observe run".

library(shiny)
library(shinyjs)

ui <- fluidPage(
  useShinyjs(),
  div(id = "before-content", h3("Aux Text Alpha")),
  shinyjs::hidden(
    div(
      id = "after-content", 
      h1("Aux Text Beta"), 
      plotOutput("text")
    )
  )
)

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

  in_plot <- reactive({
    Sys.sleep(3)
    print("Done plotting")
    plot(iris)
  })

  output$text <- renderPlot({
    in_plot()
  })

  observe({
    print("Observe run")
    hide("before-content")
    show("after-content")
  })
}

shinyApp(ui, server)

Альтернативой может быть создание слоя поверх того, что классифицируется как скрытый раздел, но я не слишком уверен в том, как это сделать.

1 Ответ

0 голосов
/ 07 ноября 2018

Вы можете hide это в реактив, вот так:

library(shiny)
library(shinyjs)

ui <- fluidPage(
  useShinyjs(),
  actionButton("button", "Click me"),
  plotOutput("text")
)

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

  in_plot <- reactive({
    hide("text")
    Sys.sleep(3)
    print("Done plotting")
    plot(iris)
  })

  output$text <- renderPlot({
    in_plot()
  })

  observeEvent(input$button, {
    show("text")
  })
}

shinyApp(ui, server)
...