2016-12-20 3 views
1

Die offizielle tutorial by RStudio ist ein wenig unklar, wie Sie die tagList() - Funktion zum Erstellen einer Namespace-ID in Shiny-Modulen tatsächlich verwenden. Die Shiny documentation hilft auch nicht viel. Was genau soll ich in die Funktion tagList() einfügen? Soll ich Eingabeargumente nur in eine tagList() umbrechen, wie in allen Beispielen und Videoanleitungen gezeigt, oder kann ich andere Elemente wie sidebarPanel() einfügen?Wie verwende ich tagList() in einem Shiny-Modul?

+0

Können Sie auf die Dokumentation verweisen und ein Codebeispiel von dem, was Sie versuchen, zu erreichen? –

+0

Die Beschreibung wurde jetzt mit einem Link zur Dokumentation aktualisiert. Mein Ziel ist es, zu verstehen, wie die Funktion tagList() beim Erstellen eines Shiny-Moduls richtig verwendet wird. – jsb

+0

Niemand kann Ihnen eine autoritative Antwort geben, wenn R-Studio dies nicht tut. Am besten ist es, es auszuprobieren und zu sehen, wo es eingefügt wird. Sie können html in der R-Studio html-Vorschau-Funktion ziemlich gut anzeigen, oder öffnen Sie den Browser und verwenden Sie den Chrome-html-Debugger. –

Antwort

2

tagList ist nichts anderes als eine Liste von Tags erstellen. Die Definition ist

> tagList 
function (...) 
{ 
    lst <- list(...) 
    class(lst) <- c("shiny.tag.list", "list") 
    return(lst) 
} 

Es ist eine einfache Liste eine Sonderklasse mit shiny.tag.list. Sie verwenden es, wenn Sie ein Modul erstellen, bei dem die Benutzeroberfläche des Moduls eine einfache Seite zurückgeben muss, wie z. B. fluidPage usw. Wenn Sie keine zusätzliche Benutzeroberfläche für das Modul erstellen möchten, geben Sie nur einige wenige umgelagerte Oberflächenelemente zurück innerhalb tagList und kümmern uns um die Benutzeroberfläche außerhalb des Moduls. Zum Beispiel:

library(shiny) 

moduleUI <- function(id){ 
    ns <- NS(id) 

    # return a list of tags 
    tagList(h4("Select something"), 
      selectInput(ns("select"), "Select here", choices=1:10)) 
    } 

module <- function(input, output, session){} 

ui <- shinyUI(
    fluidPage(wellPanel(moduleUI("module"))) # wrap everything that comes from the moduleUI in a wellPanel 
) 

server <- shinyServer(function(input, output, session){ 
    callModule(module, "module") 
}) 

shinyApp(ui = ui, server = server) 
Verwandte Themen