我有一樣的下面的圖片和數據表,當我點擊一個隨機行,應用程序會崩潰,我收到以下錯誤消息:選擇在數據表中的行
Warning in widgetFunc() :
renderDataTable ignores ... arguments when expr yields a datatable object; see ?renderDataTable
Warning: Unhandled error in observer: (list) object cannot be coerced to type 'logical'
observeEvent(input$responses_rows_selected)
ERROR: [on_request_read] connection reset by peer
我不確定這個錯誤信息的含義。
server.r
CreateDefaultRecord <- function() {
mydefault <- CastData(list(id = "0", name = "", used_shiny = FALSE, r_num_years = 4))
return (mydefault)
}
CastData <- function(data) {
datar <- data.frame(name = data["name"],
used_shiny = as.logical(data["used_shiny"]),
r_num_years = as.integer(data["r_num_years"]),
stringsAsFactors = FALSE)
rownames(datar) <- data["id"]
return (datar)
}
UpdateInputs <- function(data, session) {
updateTextInput(session, "id", value = unname(rownames(data)))
updateTextInput(session, "name", value = unname(data["name"]))
updateCheckboxInput(session, "used_shiny", value = as.logical(data["used_shiny"]))
updateSliderInput(session, "r_num_years", value = as.integer(data["r_num_years"]))
}
# Select row in table -> show details in inputs
observeEvent(input$responses_rows_selected, {
if (length(input$responses_rows_selected) > 0) {
data <- ReadData()[input$responses_rows_selected, ]
UpdateInputs(data, session)
}
})
# display table
output$responses <- DT::renderDataTable({
#update after submit is clicked
input$submit
#update after delete is clicked
input$delete
DT::datatable(ReadData(), options = list(pageLength=3),colnames = c('ID' = 1), class = 'cell-border stripe')
}, server = FALSE, selection = "single",
colnames = unname(GetTableMetadata()$fields)[-1]
)
只是出於好奇:你爲什麼不使用 '觀察({如果(長度(輸入$ responses_rows_selected)> 0){ data < - ReadData()[input $ respond_rows_selected,] UpdateInputs(data,session) } })' 而不是'observeEvent'? – Vongo
如果在兩種情況下使用observe或observEvent,我都會得到相同的警告。 – user