Я довольно новичок в R / Rshiny / RMarkdown, и я взял несколько базовых пользовательских шаблонов ввода для создания приложения. Я хочу, чтобы пользователь ввел путь к файлу и мог вызывать имя файла и путь к файлу в другой функции / чанке.
Я пришел к выводу, что реактивная функция, вероятно, является ключевой функцией для этого, но я не совсем уверен, как ее использовать.
library(shinyFiles)
ui <- fluidPage(
shinyFilesButton("Btn_GetFile", "Choose a file" ,
title = "Please select a file:", multiple = TRUE,
buttonType = "default", class = NULL),
textOutput("filename"),
textOutput("txt_file")
)
filepath <- reactiveValues() #trying, but this isn't quite working
server <- function(input,output,session){
volumes = getVolumes()
observe({
shinyFileChoose(input, "Btn_GetFile", roots = volumes, session = session)
if(!is.null(input$Btn_GetFile)){
# browser()
file_selected<-parseFilePaths(volumes, input$Btn_GetFile)
output$txt_file <- renderText(as.character(file_selected$datapath))
output$filename <- renderText(as.character(file_selected$name))
filepath <- reactive({output$txt_file}) #an attempt, but it isn't doing what I want.
}
})
}
shinyApp(ui = ui, server = server)
isolate(filepath) #also tried print. Really just trying to see if filepath is populated
Если пользователь вводит /Users/Jim/tmp.txt, я бы хотел, чтобы пользовательский интерфейс показывал /Users/Jim/tmp.txt и tmp.txt (что он делает), а также видел, что / Users / Jim / tmp.txt был сохранен как переменная filepath, к которой я могу получить доступ в другом месте.