有光泽,仅当在 fileInput 中选择文件时才显示元素

Shiny, show element only if file selected in fileInput

在我的 Shiny 应用中,用户最多可以加载 4 个文件。当用户加载文件时,我想为给定文件显示一个唯一 ID(发现文件中的文本)。但是,由于我使用的是响应式函数,所以只有当用户加载所有 4 个文件时,我才设法显示这些唯一 ID。以下是服务器端的代码行,显示了嵌入式 html 程序片段:

tags$li( paste0("ID files : ", code_to_get_ID_file( input_file_1() ),
                               code_to_get_ID_file( input_file_2() ),
                               code_to_get_ID_file( input_file_3() ),
                               code_to_get_ID_file( input_file_4() )
         )
)

在前面的代码中,input_file_i 反应函数定义如下:

input_file_i <- reactive({
    req(input$file_i)
    readLines(input$file_i$datapath)
  })

您是否知道如何在用户加载给定文件后立即显示每个 ID?也许我应该使用 if 语句?如果是这种情况,您知道 how/where 放置它们吗?或者是否存在针对这种情况的特定 Shiny 函数?

好吧,这比我最初想的要简单。我将新输出与文件的 name 相关联,它也对应于每个文件的唯一 ID,并将其呈现为文本:

  output$file_i <- renderText({
  paste("ID file i : ", input$file_i$name)
  })

最后我补充说:

  tags$li( textOutput("file_i") )

一切顺利。