您好我想发送一个" false"在进行一些计算后,从服务器端输入更新。换句话说,我想控制输出更新传播的顺序。
例如,在下面的脚本中,我需要在第二个observeEvent中的Sys.sleep之后更新输出$ text:
library(shiny)
ui <- fluidPage(
titlePanel("PLOP"),
sidebarLayout(
sidebarPanel(
selectInput("variable", "Variable:",
c("Cylinders" = "cyl",
"Transmission" = "am",
"Gears" = "gear")),
actionButton("press","press")
),
mainPanel(
textOutput("text")
)
)
)
server <- function(input, output) {
output$text <- renderText({
input$press
message("rendertext at ",Sys.time())
paste(input$variable,Sys.time())})
observeEvent(input$variable,
message("variable is edited at ",Sys.time())
)
observeEvent(input$press,{
message("button is presed at ",Sys.time())
# lot of stuff
Sys.sleep(2)
message("end calculation at ",Sys.time())
# AND NOW I would like to send a "false" input$variable update
# I dont want to change input$variable, but I need to rerun everything which use input$variable
# ( .... ) for example : changing output$text but AFTER the Sys.sleep call
})
}
# Run the application
shinyApp(ui = ui, server = server)
非常感谢
答案 0 :(得分:1)
正如我在评论中提到的:在?oberserveEvent
中,您可以设置参数priority
。首先评估具有较高优先级编号的功能。