我有一个Shiny应用程序应该计算一个值,呈现它然后使用相同的值进行更昂贵的计算。问题是它只在完成对整个脚本的评估后才显示输出。这是一个简单的例子:
library(shiny)
ui <- fluidPage(
titlePanel("test"),
sidebarLayout(
sidebarPanel(
textInput("text_in","Enter text here",value = "This is text to process"),
actionButton("go", "Go")
),
mainPanel(
textOutput("first_text"),
textOutput("results")
)
)
)
# Define server logic
server <- function(input, output) {
num_letter<-eventReactive(input$go, {
nchar(input$text_in)})
output$first_text <- renderText(num_letter())
sec_calculation<-eventReactive(num_letter(), {
Sys.sleep(3)
num_letter()*num_letter()})
output$first_text <- renderText(num_letter())
output$results <- renderText(sec_calculation())
}
# Run the application
shinyApp(ui = ui, server = server)
我添加了Sys.sleep
,因此更容易看到问题。我想在不等第二个输出的情况下得到第一个输出。
答案 0 :(得分:1)
目前无法实现这一目标(至少不能使用本机闪亮代码 - 您可以随时修复解决方法)。在闪亮的github存储库中存在一个未解决的问题:https://github.com/rstudio/shiny/issues/1705