一年前,我正在构建一个 Shiny 应用程序,结果是 asking如何使用shinyFiles显示默认文件夹。
此时,在评论员的帮助下,我构建了一个可重现的示例,该示例正在运行:
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
我现在不知道出了什么问题。我尝试安装以前版本的shinyFiles,但令人惊讶的是仍然遇到相同的错误。所以它一定是其他的包。
如果有任何想法,我将不胜感激!
UPD。添加 req(is.list(input$dir)) 解决了问题,现在我可以在应用程序中进行文件选择,但如果我从 Docker 运行它,我将看不到共享目录...
最佳答案
好的,刚刚收到shinyFiles开发者的回复:https://github.com/thomasp85/shinyFiles/issues/109#issuecomment-439185038
插入 req(is.list(input$dir))
解决了问题。
关于r - 使用shinyFiles进行文件夹选择在更新后停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53327513/