当表1中的任何选定行更改时,我需要取消选择表2中的所有行。
按照下面的示例代码执行这些步骤,以了解我的意思。
您将看到刻度线刚刚传递给表2中的“ b”,因为selectionId tableid2的值仍为1。 我尝试了一些想法(在下面注释),以编程方式更改tableid2的值,但是没有运气。
library(reactable)
# devtools::install_github("glin/reactable")
# reactable * 0.1.0.9000 2019-12-13 [1] Github (glin/reactable@566a4ba)
library(shiny)
library(data.table)
my_data <- data.table(col1 = letters[1:5])
ui <- shinyUI(
fluidPage(
# shinyjs::useShinyjs(),
column(4,
h5('Table 1'),
reactableOutput("test_table_react1")
),
column(4,
h5('Table 2'),
reactableOutput("test_table_react2")
)
)
)
server <- shinyServer(function(input, output, session) {
output$test_table_react1 <- renderReactable({
reactable(
data = my_data,
selection = "multiple",
selectionId = "tableid1",
onClick = "select",
defaultSelected = NULL,
fullWidth = FALSE
)
})
observeEvent(input$tableid1, {
# shinyjs::reset(id = 'tableid2')
# output$test_table_react2 <- renderReactable({NULL})
# HTML('Shiny.setInputValue("tableid2", NULL);')
print(input$tableid2)
})
output$test_table_react2 <- renderReactable({
req(input$tableid1)
reactable(
data = my_data[input$tableid1, ],
selection = "multiple",
selectionId = "tableid2",
onClick = "select",
defaultSelected = NULL,
fullWidth = FALSE
)
})
})
shinyApp(ui, server)
答案 0 :(得分:1)
您可以设置一个按钮,以使用reactable::updateReactable
重置选定的行。在撰写本文时,您将需要使用devtools::install_github("glin/reactable")
安装reactable的github版本以访问updateReactable。
actionButton(inputId = "clear_reactable", label="Clear Selection") #put this in UI part
observeEvent(input$clear_reactable,
updateReactable("reactable_id", selected = NA)
)