2016-06-09 26 views
0

Ich bin völlig neu in Shiny und ich kann kein textOutput bekommen, wenn ich es will.Shiny - Wie man dem Kunden sagt, wenn ein Prozess fertig ist

Der Text zeigt nicht "Verarbeitung ..." während #SomeCodeHere ausgeführt wird. Ich verstehe wirklich nicht warum. Sollte es nicht funktionieren?

Der Text wird erst wiedergegeben, nachdem das observeEvent beendet wurde. Ich weiß das, denn wenn ich den SECOND renderText() entferne, nimmt der Text den Wert "Processing ..." an, wenn die Verarbeitung beendet ist.

Wenn dies das normale Verhalten ist, gibt es eine Möglichkeit, das Rendern zu erzwingen, bevor das observeEvent vorbei ist?

EDIT:

Gibt es eine andere (any) Art und Weise zu erreichen, was ich will?

+1

Vielleicht ein Fortschrittsbalken? http://shiny.rstudio.com/articles/progress.html – user5029763

+0

Geben Sie Ihren Kommentar als vollständige Antwort und ich werde es als die richtige Antwort überprüfen. Das macht genau das, was ich will. –

Antwort

1

der Veröffentlichung meines Kommentars als Antwort (danke!)

Der Artikel über Fortschrittsbalken ist here und die Referenz here. Hier ist der Code mit dem Fortschrittsbalken:

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) 
    ) 
    }) 
}) 

Obwohl es nicht auf Ihre Frage in engem Zusammenhang steht, habe ich bemerkt, dass Sie eine output innerhalb eines observeEvent platziert haben mit einigen isolateinputs wickeln.

Einer der glänzenden Entwickler spricht über Beobachter in der first two videos of shiny's 2016 conference. Es hat mir geholfen, viel besser zu verstehen, wie man Beobachter benutzt, und ich dachte, Sie könnten es nützlich finden. :]