我有一个在闪亮会话期间动态创建的目录。目录名称和路径在反应值内。退出会话后如何删除此目录?
工作示例:
library("shiny")
ui <- fluidPage(
verbatimTextOutput("display")
)
server <- function(input,output,session) {
rv <- reactiveValues(newpath="./temporary")
fnr <- reactive({
dir.create(rv$newpath)
return(paste("Directory created"))
})
output$display <- renderPrint({
fnr()
})
session$onSessionEnded(function() {
unlink(rv$newpath,recursive=TRUE)
##unlink("./temporary",recursive=TRUE)
})
}
shinyApp(ui=ui, server=server)
这会导致错误,因为在响应上下文之外调用了响应值(rv$newpath
)。
答案 0 :(得分:1)
来自?reactiveValues
:
如果不在反应式上下文中(例如在控制台上),则可以使用 isolate()检索值:
即使您不在被动环境中,您也应该能够将自己的被动值括在isolate
中以获取其价值:
session$onSessionEnded(function() {
unlink(isolate(rv$newpath),recursive=TRUE)
})