Проблема с доступом к файлам на сетевом диске с помощью ShinyFiles::Функция ShinyFileChoose() — parseFilePaths() возвращает NA

#r #shiny #shinyapps #shiny-reactivity

Вопрос:

Мой приведенный ниже код успешно получает путь к папке с ShinyDirChoose и передает его ShinyFileButton , в котором отображаются файлы в этой папке, но я не получаю от . parseFilePaths() Для отладки я распечатал содержимое input$select_ms_file , и это вложенный список, где-то в нем появляется имя файла. Новичок в реактивных объектах и просматривал похожие посты, но не уверен, где что-то идет не так. Я публикую соответствующие части кода:

ui.R

 filler_box <- box(title = "Auto-filler",
  status = "primary", solidHeader = TRUE,
  width = 12,
  column(1,
    shinyDirButton("ms_folder",
      "Select folder",
      "Select a project folder")
  ),

  column(4,
    verbatimTextOutput("selected_ms_dir")),

  column(1,
    shinyFilesButton(
      id = "select_ms_file",
      label = "Select file",
      title = "Please select the MS data sheet file:",
      multiple = F)
    ),

  column(4,
    verbatimTextOutput("selected_ms_file"))
 

сервер.R

   # Select folder

  shinyDirChoose(input, "ms_folder", roots = roots, session = session)
  selected_ms_folder <- reactive({
    parseDirPath(roots, input$ms_folder)
  })

  output$selected_ms_dir <- renderPrint({
    if (is.integer(input$ms_folder)) {
      cat("No folder selected")
    } else {
      selected_ms_folder()
    }
  })

  # Select file

  selected_ms_file <- reactive({
    shinyFileChoose(
      input = input, "select_ms_file",
      roots = c("path" = selected_ms_folder()),
      session = session)

    req(input$select_ms_file, selected_ms_folder())

    if (is.null(input$select_ms_file))
      return(NULL)

    return(
    parseFilePaths(
      selected_ms_folder,
      input$select_ms_file)$datapath)

    })

  output$selected_ms_file <- renderPrint({
    if (is.integer(input$select_ms_file)) {
      cat("No files selected")
    } else {
      selected_ms_file()
    }
  })