runApp
的帮助页面说:
运行一个闪亮的应用程序。此功能通常不会返回; 中断R以停止应用程序(通常按Ctrl + C或 ESC)。
"通常"意思是"永远"?有没有办法添加"退出"按钮并将值返回到调用runApp
的R会话?即使它是一个黑客,这将是方便的功能。我尝试了一些搜索,但没找到任何东西。我还查看了runApp
的来源,最后一行是return(.globals$retval)
,所以看起来应该有办法。
我可以直接设置.globals$retval
然后调用某种中断吗? shiny
包中是否有一个函数可以执行此操作?
答案 0 :(得分:15)
有一个stopApp
函数可以停止正在运行的应用并返回一个可选值:
myValue <- runApp(list(
ui = bootstrapPage(
numericInput('n', 'Number of obs', 100),
actionButton("myBtn", "Press ME!"),
plotOutput('plot')
),
server = function(input, output, session) {
output$plot <- renderPlot({ hist(runif(input$n)) });
observe({
if(input$myBtn > 0){
stopApp(7)
}
})
}
))
停止时:
> myValue
[1] 7