2017-09-08 3 views
1

Ich mag die lapply Funktion verwenden, um die Anzahl der Male einstellen soll es die Funktion sollteSliderinput erstellen Anzahl von selectinput Dropdown-Menü

der Eingang in lapply Funktion Drop-Down-Menüs erstellen läuft von einem sliderinput sein sollte vom Benutzer ausgewählt

zur Zeit bin ich falsch in die Funktion 1: $ Schieberegler eingeben. Ich möchte den Bereich in lapply als (1: benutzerdefinierte Zahl von sliderinput) sowohl auf der Server- als auch auf der u-Seite verwenden.

Wie kann ich einen Eingang von Schieberegler sowohl auf der ui-und Server-Seite verwenden?

ui <- fluidPage(
sliderInput("integer", "nooftabs:",min=1,max=10,value=2), 
lapply(1:input$integer, function(i) { 

    uiOutput(paste0('choose_tab1', i)) 
}) 
) 

server <- function(input, output) { 
lapply(1:input$integer, function(i) { 
    output[[paste0('choose_tab1', i)]] <- renderUI({ 
    selectInput(paste0('tab1', i),"tab:",list("Select"="","a"="file","b"="left")) 
})}) 
    } 

shinyApp(ui = ui, server = server) 
+0

haben Sie versuchen, die lapply in einer Verpackung beobachten? – BigDataScientist

Antwort

2

Wenn ein Ereignis an einem Eingang hängt, muss es durch den Server gehen:

require("shiny") 

ui <- fluidPage(
    sliderInput("integer", "nooftabs:",min=1,max=10,value=2), 
    uiOutput("select_inputs") 
) 

server <- function(input, output){ 

    observeEvent(input$integer, output$select_inputs <- renderUI({ 
    lapply(1:input$integer, function(i){ 
     selectInput(paste0('tab1', i), 
        "tab:",list("Select"="","a"="file","b"="left")) 
    }) 
    })) 
} 

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