无法取消选择由代理使用 R Shiny 中的 DT 包选择的行



在我闪亮的应用程序中,用户可以在数据表中选择一行,该行将显示有关该行的信息。如果取消选择该行,则有关该行的信息将消失。

有时,代理会选择一行,这将触发要显示的行的相同信息。但是,如果用户单击该行以取消选择该行,则即使该行看起来已取消选择,该行仍处于选中状态。有关该行的信息不会消失,如果要更改有关该表的某些内容(切换页面并返回、更改页面长度等(,则该行将再次高亮显示,表明它仍然处于选中状态。只有在单击它三次(幻影取消选择、选择、取消选择(之后,该行才会真正被取消选择。

这似乎是DT包的问题,但我不确定。我使用的是DT的0.4版本和shine的1.1.0版本。这里有一个可重复的例子:

library(shiny)
library(DT)
ui <- fluidPage(
fluidRow(DTOutput("table")),
fluidRow(actionButton("select", "Select First Row by Proxy")),
fluidRow(textOutput("selected_row"))
)
server <- function(input, output, session) {
output$table <- renderDT({datatable(mtcars, selection = "single")})
observeEvent(input$select, {
selectRows(proxy = dataTableProxy("table"), selected = 1)
})
observeEvent(input$table_rows_selected, {
output$selected_row <- renderText(paste0("Row selected: ", input$table_rows_selected))
})
}
shinyApp(ui = ui, server = server)

当我升级到DT包的下一个版本时,这个问题得到了解决。

最新更新