2017-07-28 2 views
1

Bei größeren Anwendungen in RShiny halte ich meinen Code in separaten Dateien für separate Registerkarten oder Menüs. Wenn ich RShiny Befehle innerhalb einer .R Datei platziere und sie mit dem source() Befehl aufrufen, wird unter dem UI-Element ein TRUE gedruckt. Ich habe versucht, Quelle sowohl in ui.R und uiOutput() als auch invisible() zu nennen.Verwenden des Quellbefehls in Rshiny ohne TRUE-Auswertung

Wie unterbreche ich das TRUE Rendering?

Beispiel:

app.R

library(shiny) 

ui <- fluidPage(h4("Attempt 1"), 
       source("TestSource.R",local=T), 
       h4("Attempt 2"), 
       uiOutput("at2"), 
       h4("Attempt 3"), 
       invisible(source("TestSource.R"))) 

server <- function(input, output) { 
    output$at2 <- renderUI({ 
    invisible(source(
     "TestSource.R", 
     verbose = F, 
     echo = F, 
     print.eval = F, 
     prompt.echo = F, 
     local = T 
    )) 
    }) 
} 

shinyApp(ui = ui, server = server) 

TestSource.R

helpText("This is a test") 

Hier ist, was das macht

An example output

Vielen Dank im Voraus.

+0

haben Sie versucht, 'unsichtbar (Quelle ("TestSource.R")) '? –

+0

Ja, das funktioniert auch nicht. –

+0

'{source (" TestSource.R "); NULL}'? –

Antwort

2

Verwendung source("TestSource.R", local=TRUE)$value

Eine gute Erklärung ist here

+0

Danke, ich bin überrascht, dass ich diese Frage bei meiner Suche nicht gefunden habe! –

+1

Manchmal passiert es, tatsächlich habe ich diese Antwort mit einem Lesezeichen versehen. Wir brauchen immer noch Menschen. – Geovany

0

die Quellfunktion eine Liste erzeugt:

List of 2 
$ value :List of 3 
    ..$ name : chr "span" 
    ..$ attribs :List of 1 
    .. ..$ class: chr "help-block" 
    ..$ children:List of 1 
    .. ..$ : chr "This is a test" 
    ..- attr(*, "class")= chr "shiny.tag" 
$ visible: logi TRUE 

so können Sie versuchen:

source("TestSource.r")[1] 
Verwandte Themen