r - 退出时删除动态创建的目录
问题描述
我有一个在闪亮会话期间动态创建的目录。目录名称和路径位于反应值内。如何在退出会话时删除此目录?
工作示例:
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
反应上下文之外调用了反应值 ( )。
解决方案
来自?reactiveValues
:
如果不在反应式上下文中(例如,在控制台),您可以使用isolate() 来检索值:
isolate
即使您不在响应式上下文中,您也应该能够将您的响应式值包围起来以获取它的值:
session$onSessionEnded(function() {
unlink(isolate(rv$newpath),recursive=TRUE)
})
推荐阅读
- typescript - 为什么下面的重写方法返回 Promise
> 未设置 responseType 参数时? - excel - 如何获取以某种颜色突出显示的单元格值
- python - Pandas 数据帧根据 groupby 随机打乱连续的值行
- php - PHP / PHP Unit / Artisan / Laravel 在下一个可用端口上重新启动应用程序
- javascript - 在没有 ngModel 的情况下将输入中的数字格式化为用户类型 - angular2
- kubernetes - Kubernetes - pod 具有未绑定的即时 PersistentVolumeClaims
- javascript - Javascript + Razor for(var in list) for (var; var < list, var++)?
- python-3.x - mRNA形成蛋白质
- javascript - 在这个 React 应用程序示例中,bind(this) 到底在做什么?
- maven-3 - maven:使用 junit 4 执行集成测试,覆盖父 pom 中的设置