R, блестящий, всплывающее окно перед приложением

0

Я разрабатываю блестящее приложение, которое обращается к серверу MySQL при запуске и извлекает из него большой объем данных. Эти данные позже фильтруются во время использования приложения.

Из-за большого количества переданных данных первый запрос занимает много времени, поэтому я хотел бы создать диалоговое окно/всплывающее окно или что-то подобное, которое открывается при запуске приложения, и позволяет пользователю выбрать "Настройки для "предварительный фильтр", например, только данные с марта 2017 года.

Возможно ли это, и если да, то как это сделать? На данный момент я не нашел никакой информации об этом.

Теги:
shiny

1 ответ

0
Лучший ответ

Вот один из способов добиться того, чего вы хотите. Вы можете показать всплывающее окно при запуске, просто сделав showModal(modalDialog()) в своей серверной функции. Благодаря этим знаниям достаточно просто получить observeEvent результат, используя reactiveVal observeEvent и observeEvent.

Надеюсь, это поможет!

library(shiny)
library(dplyr)

ui <- fluidPage(
      dataTableOutput('my_table'),
      actionButton('change','Change query')
)

server <- function(input,output,session)
{
  # the modal dialog where the user can enter the query details.
  query_modal <- modalDialog(
    title = "Important message",
    selectInput('input_query','Select # cyl:',unique(mtcars$cyl)),
    easyClose = F,
    footer = tagList(
      actionButton("run", "Run query")
    )
  )

  # Show the model on start up ...
  showModal(query_modal)

  # ... or when user wants to change query
  observeEvent(input$change,
               {
                 showModal(query_modal)
               })

  # reactiveVal to store the dataset
  my_dataset <- reactiveVal()

  observeEvent(input$run, {
    removeModal()

    # Your query here
    my_data <- mtcars %>% filter(cyl %in% input$input_query)
    my_dataset(my_data)

  })

  # render the output
  output$my_table <- renderDataTable(my_dataset())

}

shinyApp(ui,server)
  • 0
    спасибо, это очень помогло! Я пока не могу проголосовать, потому что мне не хватает репутации. но все равно спасибо!
  • 1
    Нет проблем, всегда рады помочь кому-то с таким удивительным именем;)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню