Voraussetzungen: Shiny App mit einem Modul, das eine UI-Ausgabe enthält. Die UI-Ausgabe selbst enthält eine Eingabe (z. B. textInput
). Alle IDs (von UIOutput und Input) sind ns()
reaktive Eingabe Vektor verwendet merkwürdig in glänzenden Modulen
Beobachtungen erzeugt mit: mein input
Vektor wird intern mit Zitaten gespeichert. Das wäre kein Problem, aber hindert mich daran, die Eingabe in Javascript (in conditionalInput(condition='input.myModule-myInputtest=="someText"')
) zu verwenden. Wie kann ich erreichen, dass input$'mymodule'
heißt input$myModule
? Ist das ein Fehler oder mache ich etwas falsch?
Vielen Dank im Voraus und mit freundlichen Grüßen
Minimal Beispiel:
library(shiny)
ui <- fixedPage(
h2("Module example"), myModuleUI("myModule"), verbatimTextOutput("summary")
)
server <- function(input, output, session) {
callModule(myModule, "myModule", stringsAsFactors=F)
output$summary <- renderPrint({ reactiveValuesToList(input) })
}
shinyApp(ui, server)
myModuleUI <- function(id) {
ns <- NS(id)
uiOutput(ns("myInput"))
}
myModule <- function(input, output, session, stringsAsFactors) {
output$myInput <- renderUI({ textInput(ns("myInputtest"), "A Text Input") })
}
Kommentar: dies wahrscheinlich immer der Fall ist, wenn eine ID verwendet „-“. Wenn ich mein uiOutput als 'textInput (" myModule-myInput "," Eine Texteingabe ")' ändere, bleibt das Problem bestehen. Also ist das mit Glanz gemeint? Gibt es eine Problemumgehung? – shosaco
Dies ist eine R-Funktion. Wie in allen R-Codes müssen Sie, wenn Sie einen nicht standardmäßigen Argument- oder Variablennamen verwenden müssen (z. B. einen mit Bindestrichen), auch Backticks in der Umgebung verwenden. –