1

我的闪亮应用程序中有两个数据表,在第一个数据表中我可以很好地编辑、添加、删除数据,但是在第二个数据表中,当我想选择一行来编辑表时,它在要编辑的文本输入中没有显示任何内容它。我认为这是因为相同函数中某些参数的名称相似。但我不知道我的问题在哪里?这是链接: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)
    }})
4

0 回答 0