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

时间:2018-02-09 20:08:26

标签: r shiny reactive

在我的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声明?如果是这种情况你知道如何/放在哪里?或者对于这种情况是否存在特定的Shiny功能?

1 个答案:

答案 0 :(得分:0)

好的,我最初想的更容易。我将新输出与文件的name相关联,该输出也对应于每个文件的唯一ID,并将其呈现为文本:

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

最后我补充道:

  tags$li( textOutput("file_i") )

一切都很顺利。