Home > Mobile >  Stop shiny renderTable from dimming when updating data
Stop shiny renderTable from dimming when updating data

Time:12-04

I'm working on a shiny app that streams data and am updating the UI via renderTable every second. When the app renders the table dims between each update which is annoying from a visual perspective. Is there a way to disable this behavior?

output$table_state <- renderTable({
    invalidateLater(1000)
    get_table_state()
})

CodePudding user response:

If get_table_state() performs a long computation, you can try to execute it outside renderTable(). Notice the use of observe here.

Example app

library(shiny)
library(tidyverse)

long_calculation <- function() {
  Sys.sleep(1)
  iris
}

ui <- fluidPage(
  fluidRow(
  column(width = 6,
  tableOutput('table_slow')),
  column(width = 6, tableOutput('table2')))
  
)

server <- function(input, output, session) {
  
  df <- reactiveValues(x = NULL)
  
  output$table_slow <- renderTable({
    invalidateLater(1000)
    long_calculation()
  })
    
   iris_no_dim <- observe({
     invalidateLater(1000)
     df$x <- long_calculation()})
  
   
  output$table2 <-  renderTable({
   
    df$x
   
  })
  
}

shinyApp(ui, server)

enter image description here

  • Related