Shiny 使用rhandsontable但不使用dq_render_handsontable的被动数据表

Shiny 使用rhandsontable但不使用dq_render_handsontable的被动数据表,shiny,shiny-reactivity,rhandsontable,Shiny,Shiny Reactivity,Rhandsontable,我正在尝试构建rhandsontable,但这次使用dq_render_handsontable,因为它提供了额外的功能来放置漂亮的过滤器和分页。 在我的应用程序中,我根据选择器输入过滤数据两次,这会创建两个反应性数据帧。。。第一次安装后过滤1(),第二次安装后过滤2() dq_render_handsontable函数可以很好地处理filter_tbl_1()数据,并提供正确的筛选。但是对于filter_tbl_2(),它会抛出一个错误。我的猜测是,它无法识别筛选器_tbl_2()。除此之外,

我正在尝试构建rhandsontable,但这次使用dq_render_handsontable,因为它提供了额外的功能来放置漂亮的过滤器和分页。 在我的应用程序中,我根据选择器输入过滤数据两次,这会创建两个反应性数据帧。。。第一次安装后过滤1(),第二次安装后过滤2()

dq_render_handsontable函数可以很好地处理filter_tbl_1()数据,并提供正确的筛选。但是对于filter_tbl_2(),它会抛出一个错误。我的猜测是,它无法识别筛选器_tbl_2()。除此之外,没有错误显示的信息。如果有人能帮忙,我将不胜感激

最小可复制代码:

library(dqshiny)
library(rhandsontable)
library(tibble)
library(dplyr)

ui <- fluidPage(
    column(
        width = 4,
        pickerInput(inputId = "carb_input", 
                    label = "Pick carb",
                    choices = mtcars %>% pull(carb) %>% unique(),
                    selected = mtcars %>% pull(carb) %>% unique(),
                    multiple = TRUE,
                    options = pickerOptions(
                        actionsBox = TRUE,
                        liveSearch = TRUE,
                        size = 10
                    )),
        pickerInput(inputId = "gear_input", 
                    label = "Pick Gear",
                    choices = NULL,
                    multiple = TRUE,
                    options = pickerOptions(
                        actionsBox = TRUE,
                        liveSearch = TRUE,
                        size = 10
                    ))
    ),
    column(
        width = 8,
        dq_handsontable_output("review_table", 8L),
        rHandsontableOutput("test")
    )


)

server <- function(input,output,session){
    filter_tbl_1 <- reactive({
        mtcars %>% rowid_to_column() %>% filter(carb %in% input$carb_input)
    })

    observeEvent(filter_tbl_1(),{
        choices <- filter_tbl_1() %>% pull(gear) %>% unique()
        updatePickerInput(session, "gear_input", choices = choices, selected = choices)
    })

    filter_tbl_2 <- reactive({
        req(input$gear_input)
        filter_tbl_1() %>% filter(gear %in% input$gear_input)
    })



    dq_render_handsontable("review_table",
                           data = reactive(filter_tbl_1()))

    output$test <- renderRHandsontable(rhandsontable(filter_tbl_2()))
}

shinyApp(ui,server)
库(dqshiny)
图书馆(rhandsontable)
图书馆(tibble)
图书馆(dplyr)
用户界面%pull(carb)%%>%unique(),
所选=mtcars%%>%pull(carb)%%>%unique(),
倍数=真,
选项=选取选项(
actionsBox=TRUE,
liveSearch=TRUE,
尺寸=10
)),
选择器输入(inputId=“齿轮输入”,
label=“拾取装备”,
选项=空,
倍数=真,
选项=选取选项(
actionsBox=TRUE,
liveSearch=TRUE,
尺寸=10
))
),
纵队(
宽度=8,
dq_可触摸输出(“查看_表”,8L),
rHandsontableOutput(“测试”)
)
)
服务器%筛选器(carb%在%input$carb\U input中)
})
observeEvent(过滤器tbl 1(){
选择%pull(档位)%%>%unique()
更新输入(会话“齿轮输入”,选项=选项,选定=选项)
})
过滤器\u tbl\u 2%过滤器(在%input$gear\u input中的档位百分比)
})
dq_render_handsontable(“查看_表”,
数据=无功(过滤器1())
输出$test