在Shiny Web应用程序(R)中输出预定时间量的文本

时间:2014-06-28 15:52:11

标签: r shiny

我的server.R文件中有一个输出:

output$thankYouText <- renderText({

    totalActionCount <- as.numeric(input$yes + input$no)

    if (totalActionCount > 0) {

    paste("Thank you. Please see next recommendation.")

            }


  })

如果有人点击YES或NO按钮,则totalActionCount会增加,然后打印文本。我需要这个文本现在在说2秒后消失,并且只要有人点击按钮就重复这个模式。

1 个答案:

答案 0 :(得分:1)

正如@GSee所说,你可以使用invalidateLater完成此任务。

library(shiny)
runApp(list(
  ui = bootstrapPage(
    actionButton("yes", "YES!", icon = icon("thumbs-o-down")),
    actionButton("no", "NO!", icon = icon("thumbs-o-up")),
    textOutput('text')
  ),
  server = function(input, output, session) {
    values <- reactiveValues(tac = 0)
    output$text <- renderText({
      totalActionCount <- as.numeric(input$yes + input$no)
      if (totalActionCount > 0) {
        if(isolate(values$tac < totalActionCount)){
          isolate(values$tac <- totalActionCount)
          invalidateLater(2000, session)
          return(paste("Thank you. Please see next recommendation."))
        }else{
        }
      }
    })
  }
))