首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R闪亮-在SQL query填充selectInput时加载图标

问R闪亮-在SQL query填充selectInput时加载图标
EN

Stack Overflow用户
提问于 2021-03-09 03:31:03
回答 1查看 16关注 0票数 0

我已经通过使用shinycssloaders包了解了如何将加载图标与输出(即plotOutput)结合使用。我有一个闪亮的模块,类似于下面的pseduocode:

代码语言:javascript
复制
super_module_server <- function(id) {
    moduleServer(
      id,
      function(input, output, sesion) {
          data <- sql_query()
          selected <- mod_selectInput_server(data)
      })
}

在这段代码中,sql_query()从远程数据库检索数据并将其作为tibble返回。它被传递给mod_selectInput_server,后者使用该数据填充标准selectInput。

有没有办法向用户演示SQL查询正在运行(就像旋转的图标一样),而不是在数据填充之前只留下一个空的下拉列表?

EN

回答 1

Stack Overflow用户

发布于 2021-03-09 04:05:33

当然,我们可以在下拉列表旁边添加一个旋转加载图标。

找到一个你喜欢的小的加载gif,并把它放在你的应用程序www文件夹中。

下面的最小示例展示了我们如何使用shinyjs来显示和隐藏我们的加载gif。

代码语言:javascript
复制
library(shiny)
library(shinyjs)

ui <- fluidPage(
  
    #Allow our app to use shinyjs
    useShinyjs(),
    
    #Our dropdown
    selectInput("mydropdown", "Dynamic Dropdown", choices = "Nothing Here Yet"),
    
    #An action button to populate our dropdown, simulating a long running SQL query
    actionButton("myactionbutton", "Populate Dropdown"),
    
    #Our loading icon, made hidden by default
    hidden(img(id = 'icon_loading', src = 'loading.gif'))
    
)

server <- function(input, output, session) {
  
    #Runs when myactionbutton is clicked
    observeEvent(input$myactionbutton, {
        
        #Show our loading icon
        shinyjs::show(id = 'icon_loading')
        
        #Sleep for 5 seconds to simulate long running SQL query
        Sys.sleep(5)
        
        #Update dropdown
        updateSelectInput(session, "mydropdown", choices = runif(5))
        
        #Hide our loading icon
        shinyjs::hide(id = 'icon_loading')
        
    })
    
}

shinyApp(ui, server)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66535982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档