【问题标题】:R - Shiny - How to update a textOutput multiple times in an observerR - Shiny - 如何在观察者中多次更新文本输出
【发布时间】:2016-03-24 02:18:01
【问题描述】:

我有一个关于在闪亮应用中更新文本输出的问题。

在观察者中,我进行了几次计算,并且在每个计算之间,我想在文本输出中显示信息。

我尝试了几件事,但它唯一显示的是最后的信息:

library(shiny)

ui <- fluidPage(
  headerPanel("Hello !"),
  mainPanel(
    actionButton("bouton", "Clic !"),
    textOutput("texte")
  )
)

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

  observeEvent(input$bouton, {
    output$texte = renderText("Initialization...")
    Sys.sleep(1)
    output$texte = renderText("Almost ready...")
    Sys.sleep(3)
    output$texte = renderText("Ok !")
  })
}

runApp(list(ui=ui,server=server), launch.browser = TRUE)

或者:

library(shiny)

ui <- fluidPage(
  headerPanel("Hello !"),
  mainPanel(
    actionButton("bouton", "Clic !"),
    textOutput("texte")
  )
)

server <- function(input,output, session){
  rv = reactiveValues()

  rv$mess = ""

  observeEvent(input$bouton, {
    rv$mess = "Initialization..."
    Sys.sleep(1)
    rv$mess = "Almost ready..."
    Sys.sleep(3)
    rv$mess = "Ok !"
  })
  observe({
    output$texte <<- renderText(rv$mess)
  })
}

runApp(list(ui=ui,server=server))

编辑:在这两个示例中,在最后一条消息“OK!”之前它什么都不显示

我哪里错了?

感谢您的帮助!

【问题讨论】:

标签: r shiny


【解决方案1】:

感谢 Eugene,这是我的工作代码(仅限服务器):

server <- function(input,output, session){
  rv = reactiveValues()

  rv$mess = ""

  observeEvent(input$bouton, {
    withProgress({
      setProgress(message = "Initialization...")
      Sys.sleep(1)
      setProgress(message = "Almost ready...")
      Sys.sleep(3)
      setProgress(message = "Ok !")
      Sys.sleep(2)
    })
  })
}

【讨论】:

    【解决方案2】:

    您可以考虑通过以下方式使用闪亮的进度指示器来实现这一点:

    1. withProgress将观察者中的所有内容包装起来,然后
    2. 在您使用rv$messoutput$texte 的地方使用setProgress( message = "some message" )

    但是,进度指示器将显示在右上角(如果您修改 css,则显示在其他位置)而不是输出框中。

    http://shiny.rstudio.com/articles/progress.html

    【讨论】:

    • 太棒了!非常感谢 !不显示在 textOuput 对象中也没关系。
    猜你喜欢
    • 2016-07-03
    • 1970-01-01
    • 2015-11-05
    • 2018-10-29
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多