перестал работать выбор папки с глянцевыми файлами с обновлением - PullRequest
0 голосов
/ 15 ноября 2018

Год назад я создавал приложение Shiny и спрашивал , как отобразить папку по умолчанию с глянцевыми файлами.

В это время с помощью комментаторов я построил воспроизводимый пример, который работал:

library(shiny)
library(shinyFiles)

ui <- fluidPage( # Application title
  mainPanel(
    shinyDirButton("dir", "Input directory", "Upload"),
    verbatimTextOutput("dir", placeholder = TRUE)  
  ))

server <- function(input, output) {
  shinyDirChoose(
    input,
    'dir',
    roots = c(home = '~'),
    filetypes = c('', 'txt', 'bigWig', "tsv", "csv", "bw")
  )

  global <- reactiveValues(datapath = getwd())

  dir <- reactive(input$dir)

  output$dir <- renderText({
      global$datapath
  })

  observeEvent(ignoreNULL = TRUE,
               eventExpr = {
                 input$dir
               },
               handlerExpr = {
                 home <- normalizePath("~")
                 global$datapath <-
                   file.path(home, paste(unlist(dir()$path[-1]), collapse = .Platform$file.sep))
               })
}

# Run the application
shinyApp(ui = ui, server = server)

Теперь пришло время обновить приложение Shiny, я обновил версию R и несколько пакетов, и он перестал работать. Я получаю следующую ошибку:

Warning: Error in $: $ operator is invalid for atomic vectors
  75: unlist
  72: observeEventHandler
   1: shiny::runApp

Я не могу понять, что сейчас не так. Я попытался установить предыдущую версию блестящих файлов, но на удивление все еще получал ту же ошибку. Так что это должен быть какой-то другой пакет.

Буду признателен за любые идеи!

UPD. Добавление req (is.list (input $ dir)) решило проблему, теперь я могу выбрать файл, работающий в приложении, но если я запускаю его из Docker, я не вижу общий каталог ...

1 Ответ

0 голосов
/ 16 ноября 2018

Хорошо, только что получил ответ от разработчиков глянцевых файлов: https://github.com/thomasp85/shinyFiles/issues/109#issuecomment-439185038

Вставка req(is.list(input$dir)) исправила проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...