我的闪亮应用程序中有两个数据表,在第一个数据表中我可以很好地编辑、添加、删除数据,但是在第二个数据表中,当我想选择一行来编辑表时,它在要编辑的文本输入中没有显示任何内容它。我认为这是因为相同函数中某些参数的名称相似。但我不知道我的问题在哪里?这是链接:CRUD
第一个数据表的更新函数如下:
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"]))
}
UpdateData <- function(data) {
data <- CastData(data)
responses[row.names(responses) == row.names(data), ] <<- data
}
第二个数据表的类似新功能
UpdateInputs1 <- function(data, session) {
updateTextInput(session, "id1", value = unname(rownames(data)))
updateTextInput(session, "name1", value = unname(data["name1"]))
}
UpdateData1 <- function(data) {
data <- CastData1(data)
responses2[row.names(responses2) == row.names(data), ] <<- data
}
服务器.R
# Press "New" button -> display empty record
observeEvent(input$new, {
UpdateInputs(CreateDefaultRecord(), session)
})
# Select row in table -> show details in inputs
observe({if (length(input$responses_rows_selected) > 0)
{
data <- ReadData()[input$responses_rows_selected, ]
UpdateInputs(data, session) }
})
# Press "New" button -> display empty record
observeEvent(input$new1, {
UpdateInputs1(CreateDefaultRecord1(), session)
})
# Select row in table -> show details in inputs
observeEvent(input$responses2_rows_selected, {
if (length(input$responses2_rows_selected) > 0) {
data <- ReadData1()[input$responses2_rows_selected, ]
UpdateInputs1(data, session)
}})