使用selectizeGroup无反应模块输出

使用selectizeGroup无反应模块输出,r,shiny,R,Shiny,我想让一个pickerinput限制ShinyWisgets的SelectizeGroup模块中的选项。我可以使用一个反应式表达式来实现这一点。然而,表格中没有任何内容可供我查看结果。我错过了什么 我怀疑我在mpg_筛选器表达式中出错 # https://dreamrs.github.io/shinyWidgets/reference/selectizeGroup-module.html library(shiny) library(shinyWidgets) data("mpg", pac

我想让一个pickerinput限制ShinyWisgets的SelectizeGroup模块中的选项。我可以使用一个反应式表达式来实现这一点。然而,表格中没有任何内容可供我查看结果。我错过了什么

我怀疑我在mpg_筛选器表达式中出错

# https://dreamrs.github.io/shinyWidgets/reference/selectizeGroup-module.html

library(shiny)
library(shinyWidgets)

data("mpg", package = "ggplot2")

ui <- fluidPage(
  fluidRow(
    column(
      width = 10, offset = 1,
      tags$h3("Filter data with selectize group"),
      panel(
        pickerInput(
          inputId = "car_select",
          choices = unique(mpg$manufacturer),
          options = list(
            `live-search` = TRUE,
            title = "None selected"
          ),
        ),


        selectizeGroupUI(
          id = "my-filters",
          params = list(
            manufacturer = list(inputId = "manufacturer", title = "Manufacturer:"),
            model = list(inputId = "model", title = "Model:"),
            trans = list(inputId = "trans", title = "Trans:"),
            class = list(inputId = "class", title = "Class:")
          )
        ),
        status = "primary"
      ),
      dataTableOutput(outputId = "table")
    )
  )
)

server <- function(input, output, session) {
  mpg_filter <- reactive({
    mpg %>%
      filter(mpg$manufacturer %in% input$car_select)
  })


  res_mod <- reactive({
    callModule(
      module = selectizeGroupServer,
      id = "my-filters",
      data = mpg_filter(),
      vars = c("manufacturer", "model", "trans", "class")
    )
  })

  output$table <- renderDataTable(res_mod())
}

shinyApp(ui, server)

#https://dreamrs.github.io/shinyWidgets/reference/selectizeGroup-module.html
图书馆(闪亮)
图书馆(shinyWidgets)
数据(“mpg”,package=“ggplot2”)

ui困难源于这样一个事实:
selectizeGroupServer
不接受
reactive
作为
数据
参数。如果是这样的话,就简单多了。以下是一个解决方法:

server <- function(input, output, session) {
  mpg_filter <- reactive({
    mpg %>%
      filter(mpg$manufacturer %in% input$car_select)
  })

  res_mod <- reactive({})

  observe({
    res_mod <<- callModule(
      module = selectizeGroupServer,
      id = "my-filters",
      data = mpg_filter(),
      vars = c("manufacturer", "model", "trans", "class")
    )
  })

  output$table <- renderDataTable(res_mod())
}
服务器
server <- function(input, output, session) {
  mpg_filter <- reactive({
    mpg %>%
      filter(mpg$manufacturer %in% input$car_select)
  })


  res_mod <- reactive({
    callModule(
      module = selectizeGroupServer,
      id = "my-filters",
      data = mpg_filter(),
      vars = c("manufacturer", "model", "trans", "class")
    )
  })

  output$table <- renderDataTable(res_mod()())
}