Prérequis: Application brillante utilisant un module qui contient une sortie d'interface utilisateur. La sortie de l'interface utilisateur elle-même contient n'importe quelle entrée (par exemple, textInput
). Tous les ID (de UIOutput et d'entrée) sont générés à l'aide ns()
vecteur d'entrée réactif utilise étrangement des guillemets dans des modules brillants
Observations: mon input
Vector est enregistrée en interne avec des guillemets. Cela ne poserait aucun problème mais m'empêche d'utiliser l'entrée en javascript (au conditionalInput(condition='input.myModule-myInputtest=="someText"')
). Comment puis-je obtenir que input$'mymodule'
s'appelle input$myModule
? Est-ce un bug ou est-ce que je fais quelque chose de mal?
Merci à l'avance et meilleures salutations
exemple minimal:
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") })
}
commentaire: c'est probablement toujours le cas lorsqu'un ID utilise « - ». Lorsque je change mon uiOutput en 'textInput (" myModule-myInput "," A Text Input ")', le problème persiste. Donc, cela est prévu par brillant? Y at-il un travail autour? – shosaco
Ceci est une fonctionnalité de R. Comme dans tout code R, si vous avez besoin d'utiliser un argument ou un nom de variable non standard (par exemple un qui inclut des tirets), vous devrez également utiliser des backticks autour de celui-ci. –