ardata-fr/shinytools

Module FilterData - bug si utilisation avec datasets multiples

Closed this issue · 0 comments

Si on souhaite modifier le dataset d'intérêt et qu'un filtre est sélectionné -> plantage de l'application.
Voir code test ci dessous :

library(shiny)
library(DT)
library(shinytools)

if (interactive()) {
  options(device.ask.default = FALSE)
  
  ui <- fluidPage(
    shiny::fluidRow(
      shiny::column(
        width = 3,
        selectInput("input_data", "Choose a dataset:",
                    choices = c("rock", "pressure", "cars"))
      )
    ),
    
 shiny::fluidRow(
      
      shiny::column(
        width = 4,
        shinytools::filterDataUI(id = "res1")
      ),
      shiny::column(width = 8, 
                    DT::dataTableOutput(outputId = "subsetdata")
      )
    )
  )
}

server <- function(input, output) {
  
  datasetInput <- reactive({
    switch(input$input_data,
           "rock" = rock,
           "pressure" = pressure,
           "cars" = cars)
  })
  
  res_data <- shiny::callModule(module = shinytools::filterDataServer,
                                id = "res1", x = reactive(datasetInput()),
                                return_data = TRUE)
  
  
  output$subsetdata <- DT::renderDataTable({
    res_data$filtered_data
  })
}


print(shinyApp(ui, server))