![](/img/trans.png)
[英]How to update textOutput in R Shiny within the execution of an actionButton?
[英]R - Shiny - How to update a textOutput multiple times in an observer
我有一個關於更新閃亮應用程序中的文本輸出的問題。
在一個觀察者中,我進行了幾次計算,並且在每個計算之間,我想在文本輸出中顯示信息。
我嘗試了幾件事,但它唯一展示的是最后的信息:
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!”
我哪里錯了?
謝謝你的幫助 !
感謝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)
})
})
}
您可以考慮使用閃亮的進度指標實現此目標:
withProgress
的觀察者中,和 setProgress( message = "some message" )
,你使用rv$mess
並output$texte
但是,進度指示器將顯示在右上角(如果您修改了css,則顯示在其他位置)而不是輸出框中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.