R 在没有更改输出的情况下单击按钮时在后台执行函数(闪亮)
我希望能够在我闪亮的应用程序中单击一个按钮。到目前为止很容易。 但在执行此操作时,加载、写入然后保存excel工作表的函数应该“在后台”执行,而应用程序本身不会更改输出。 我该怎么做 亲切问候,R 在没有更改输出的情况下单击按钮时在后台执行函数(闪亮),r,shiny,R,Shiny,我希望能够在我闪亮的应用程序中单击一个按钮。到目前为止很容易。 但在执行此操作时,加载、写入然后保存excel工作表的函数应该“在后台”执行,而应用程序本身不会更改输出。 我该怎么做 亲切问候, 马丁:是的。尝试使用观察者 在server.R中: 这样,当服务器完成后台处理时,或者如果出现错误,您可以从客户端获得一些反馈。也许你想通知用户一个错误或什么的 使用观察的参考是是。尝试使用观察者 在server.R中: 这样,当服务器完成后台处理时,或者如果出现错误,您可以从客户端获得一些反馈。也许你
马丁:是的。尝试使用观察者 在server.R中: 这样,当服务器完成后台处理时,或者如果出现错误,您可以从客户端获得一些反馈。也许你想通知用户一个错误或什么的
使用
观察的参考是是。尝试使用观察者
在server.R中:
这样,当服务器完成后台处理时,或者如果出现错误,您可以从客户端获得一些反馈。也许你想通知用户一个错误或什么的
使用观察的参考是是。尝试使用观察者
在server.R中:
这样,当服务器完成后台处理时,或者如果出现错误,您可以从客户端获得一些反馈。也许你想通知用户一个错误或什么的
使用观察的参考是是。尝试使用观察者
在server.R中:
这样,当服务器完成后台处理时,或者如果出现错误,您可以从客户端获得一些反馈。也许你想通知用户一个错误或什么的
使用观察
的参考是使用操作按钮
。使用操作按钮
。使用操作按钮
。使用操作按钮
。感谢您的详细回答!我试试:)另一个问题:我现在有一个actionButton,只有在以前发生过另一个操作时才会出现。因此,如果我让一个观察者观察这个“依赖”操作按钮,当我检查if(input$depactionButton>0)时,我总是会得到一个错误,比如“argument的长度为0”。我怎样才能避免这种情况?希望这是可以理解的。我不想提出一个全新的问题;)好的,解决方案是首先使用if(!is.null(输入$dependentbutton)),然后在内部使用if(输入$dependentbutton>0)!你好,Martindabelju冶炼厂。很高兴你自己发现了。对不起,今天早上我很忙,没有注意到你的评论。我猜在你的问题中,你说一个按钮将“出现”,意思是你使用server.R
中的updateUI
创建了这个按钮?如果要避免额外的If
条件,可以使用conditionalPanel
环绕依赖按钮,并仅在单击actionButton后使其可见。让我补充一点解释。您可以在ui.R
中创建这两个按钮,但是dependentButton
由一个conditionnalpanel
包装,其condition
参数设置为condition=“input.actionButton>0”
。这样,当您单击actionButton
时,它会增加计数器input$actionButton
,满足指定的条件,因此会出现从属按钮。请注意,您在条件中使用了input.actionButton
,因为此条件是用Javascript计算的,而不是R。因此您使用的是“点”,而不是“美元符号”。谢谢您的详细回答!我试试:)另一个问题:我现在有一个actionButton,只有在以前发生过另一个操作时才会出现。因此,如果我让一个观察者观察这个“依赖”操作按钮,当我检查if(input$depactionButton>0)时,我总是会得到一个错误,比如“argument的长度为0”。我怎样才能避免这种情况?希望这是可以理解的。我不想提出一个全新的问题;)好的,解决方案是首先使用if(!is.null(输入$dependentbutton)),然后在内部使用if(输入$dependentbutton>0)!你好,Martindabelju冶炼厂。很高兴你自己发现了。对不起,今天早上我很忙,没有注意到你的评论。我猜在你的问题中,你说一个按钮将“出现”,意思是你使用server.R
中的updateUI
创建了这个按钮?如果要避免额外的If
条件,可以使用conditionalPanel
环绕依赖按钮,并仅在单击actionButton后使其可见。让我补充一点解释。您可以在ui.R
中创建这两个按钮,但是dependentButton
由一个conditionnalpanel
包装,其condition
参数设置为condition=“input.actionButton>0”
。这样,当您单击actionButton
时,它会增加计数器input$actionButton
,满足指定的条件,因此会出现从属按钮。请注意,您在条件中使用了input.actionButton
,因为此条件是用Javascript计算的,而不是R。因此您使用的是“点”,而不是“美元符号”。谢谢您的详细回答!我试试:)另一个问题:我现在有一个actionButton,只有在以前发生过另一个操作时才会出现。因此,如果我让一个观察者观察这个“依赖”操作按钮,当我检查if(input$depactionButton>0)时,我总是会得到一个错误,比如“argument的长度为0”。我怎样才能避免这种情况?希望这是可以理解的。我不想提出一个全新的问题;)好的,解决方案是首先使用if(!is.null(输入$dependentbutton)),然后在内部使用if(输入$dependentbutton>0)!你好,Martindabelju冶炼厂。很高兴你自己发现了。对不起,今天早上我很忙,没有注意到你的评论。我猜在你的问题中,你说一个按钮将“出现”,意思是你使用server.R
中的updateUI
创建了这个按钮?如果要避免额外的If
条件,可以使用conditionalPanel
环绕t
shinyServer(function(input, output, session) {
# other code ...
observe({
# do_something_button is your actionButton id.
if (input$do_something_button > 0) {
# perform behind the scenes analysis here.
# if you want to send a message to the client side, you can try
# something like:
message <- list(type="completed", excel_file=saved_file)
session$sendCustomMesage("background_task", message)
}
})
# other code ...
})
Shiny.addCustomMessageHandler("background_task", function(message) {
console.log("Finished processing: " + message.excel_file);
});