gpt4 book ai didi

r - 需要一种方法来立即重新加载 session ,而无需完成 Shiny 中的代码序列

转载 作者:行者123 更新时间:2023-12-02 18:19:17 25 4
gpt4 key购买 nike

我正在使用 Shiny 的包来构建工具的网络版本。在提供输出之前,必须对用户输入执行验证。其中一项验证需要刷新工具。
为了完成此任务,我尝试在名为“显示结果”的操作按钮内使用“session$reload”。
虽然 session$reload 在响应式(Reactive)按钮中工作得很好,但我需要一种在不完成代码序列的情况下重置 session 的方法。

工作 session 重新加载

server <- function(input, output, session) {

{ #Test Door Identification Server

#Refresh button
observeEvent(input$refresh, {
session$reload()
})

session$code需要立即重置的代码

    library(shiny)

ui <- fluidPage(

actionButton('switchtab',"Click this"),
textOutput('code_ran')

)

server <- function(input, output, session){

observeEvent(input$switchtab,{
aggg_result = -1
if(aggg_result == -1)
{
session$reload()
print("session reload not working")
}

print("Code running this line")

output$code_ran <- renderText("code Ran this line without refreshing")

})

}

shinyApp(ui = ui, server = server)

该函数的输出:打印“重新加载不起作用”并继续执行其余语句。

我明白这就是 session$reload 的工作原理,但是有没有办法在不打印“Code running this line”的情况下重置?

非常欢迎任何指示/建议。

问候,韦维克S

最佳答案

好的,在 session$reload() 之后简单地执行一个 return() 怎么样?

library(shiny)

ui <- fluidPage(

actionButton('switchtab',"Click this"),
textOutput('code_ran')

)

server <- function(input, output, session){

print("Initializing")

observeEvent(input$switchtab,{
aggg_result = -1
if(aggg_result == -1)
{
session$reload()
return()
print("session reload not working")
}

print("Code running this line")

output$code_ran <- renderText("code Ran this line without refreshing")

})

}
shinyApp(ui = ui, server = server)

它实现了你想要的,对吗?

关于r - 需要一种方法来立即重新加载 session ,而无需完成 Shiny 中的代码序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43061119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com