Je voudrais utiliser do.call
pour exécuter rendre les fonctions de la famille, comme renderPrint()
. Ci-dessous le code ne fonctionne pas:Shiny: utiliser do.call pour exécuter les fonctions de la famille de rendu
rm(list=ls())
library(shiny)
ui <- fluidPage(
selectInput("select", label = h3("Select box"),
choices = list("Choice 1" = 1, "Choice 2" = 2, "Choice 3" = 3),
selected = 1),
hr(),
fluidRow(column(3, verbatimTextOutput("value")))
)
server <- function(input, output, session) {
output$value <- do.call("renderPrint", list({ input$select }))
}
shinyApp(ui, server)
Erreur:
Warning: Error in .getReactiveEnvironment()$currentContext: Operation not allowed without an active reactive context. (You tried to do something that can only be done from inside a reactive expression or observer.)
Stack trace (innermost first):
45: .getReactiveEnvironment()$currentContext
44: .subset2(x, "impl")$get
43: $.reactivevalues
[...]
Comment y parvenir? Je suppose que cela est en quelque sorte lié à l'environnement et l'évaluation paresseux, donc la fermeture pourrait la solution, mais ce n'est que de deviner ...
Je suppose que 'observe ({output $ value <- do.call (" renderPrint ", liste ({input $ select}))}) résoudrait le problème. – Benjamin