Ich habe ein Problem mit der Option _row_last_clicked, die für Tabellen zur Verfügung gestellt wird, die in glänzenden Oberflächen mit der ersten DTB-Bibliothek erstellt wurden. Ich versuche, eine Zeile in einer Datentabelle auszuwählen, Änderungen daran vorzunehmen und sie an die glänzende ui.r. auszugeben. Es funktioniert für die erstmalige Auswahl, aber wenn ich erneut auf dieselbe Tabellenzeile klicke, die ich zuvor ausgewählt habe, scheint _row_last_clicked nicht mehr zu reagieren (= NULL?). Hier ist ein Beispiel mininmal (ui.r wahrscheinlich irrelevant) von dem, was ich zu erreichen versuchen:shiny DT _row_last_clicked
# server.r-side:
table_x<-# ... loads the dataframe
redo_cal<-reactiveValues()
redo_cal$a<-1
observe({
redo_cal$a
output$some_table <- DT::renderDataTable(
table_x,
server = TRUE, # same problem with FALSE
selection =c('single')
)
})
observeEvent(
input$some_table_row_last_clicked,{
s<-input$some_table_row_last_clicked
table_x[s,]<- # some reversible modifications based on the row selection ...
redo_cal$a<-(redo_cal$a+1) # trigger above renderDataTable
})
Das Problem weiterhin besteht sowohl für die neueste Version von Github DT sowie die Veröffentlichung auf CRAN gefunden. Ich habe mehrere verwandte Beiträge gelesen, konnte aber keine befriedigende Lösung finden. Vielen Dank für Ihre Hilfe!
es ist das Problem, das Sie brauchen, um Tabelle_x als reactiveValue (meine Meinung) zu haben – Batanichek
danke! habe gerade deinen Vorschlag ausprobiert - aber das Problem, die gleiche ui-Tabellenzeile nicht zweimal hintereinander auswählen zu können, bleibt bestehen. – martin
so brauchen Sie 'some_table_row_selected' insted' row_clicked' – Batanichek