我对Shiny完全陌生,我无法在需要时获取textOutput。
observeEvent(input$btnPersistencia, {
output$txtProtActual <- renderText("PROCESSING...")
print("This does print in console")
#SomeCodeHere that takes about 10 seconds to finish
output$txtProtActual <- renderText(paste("Archivo Persistencia Actual: ", basename(values$file), "\n Dim: ", isolate(input$sliderDimension), "\n Filtr: ", isolate(input$txtMaxFil)))
})
该文字未显示&#34;正在处理......&#34;而#SomeCodeHere正在运行。我真的不明白为什么。不应该有用吗?
文本仅在observeEvent结束后呈现。我知道这是因为如果我删除了SECOND renderText(),那么文本将采用值&#34; Processing ...&#34;处理结束时。
如果这是正常行为,有没有办法在observeEvent结束之前强制渲染?
编辑:
是否有其他(任何)方法可以实现我想要的目标?
答案 0 :(得分:1)
发表评论作为答案(谢谢!)
有关进度条的文章为here,参考文件为here。 这是使用进度条的代码:
observeEvent(input$btnPersistencia, {
withProgress(message = 'PROCESSING...', value = 0, {
incProgress(1/2)
#SomeCodeHere that takes about 10 seconds to finish
Sys.sleep(10)
})
output$txtProtActual <- renderText({
paste("Archivo Persistencia Actual: ", basename(values$file),
"\n Dim: ", isolate(input$sliderDimension),
"\n Filtr: ", isolate(input$txtMaxFil)
)
})
})
虽然它与您的问题无关,但我发现您已将output
置于observeEvent
内且isolate
包裹inputs
$args = array(
'posts_per_page' => 5,
'meta_query' => array(
'relation' => 'AND',
'_post_views' => array(
'key' => '_post_views',
'type' => 'NUMERIC',
'compare' => 'LIKE'
),
'_post_like_count' => array(
'key' => '_post_like_count',
'type' => 'NUMERIC',
'compare' => 'LIKE'
),
),
'orderby' => array(
'_post_views' => 'DESC',
'_post_like_count' => 'DESC'
)
);
1}}。
其中一位有光泽的开发人员在first two videos of shiny's 2016 conference谈论观察员。它帮助我更好地理解如何使用观察者,我认为你可能会发现它很有用。 :