R闪亮:添加新的selectInput

时间:2020-04-03 14:33:34

标签: r shiny selectinput

我正在创建一个类似Google Maps的应用程序,用户可以在其中选择出发地和目的地。但是在我的代码中,该应用程序会自动刷新输入,而我找不到一种单独隔离每个输入的方法。有谁知道如何解决这个问题?

rm(list=ls())
library(shiny)
#
ui <- fluidPage(titlePanel("Getting Iframe"), 
                sidebarLayout(
                  sidebarPanel(
                    fluidRow(
                      column(10, selectInput("Origin", label=h5("Origin"),choices=c(paste0("City_",seq_len(5)))))
                    ),
                    fluidRow(
                      actionButton("add_btn", "Add Destination"),
                      actionButton("rm_btn", "Remove Destination")
                    ),
                    uiOutput("dest_ui")
                  ),
                  mainPanel(fluidRow(
                    htmlOutput("frame")
                  )
                  )
                ))
#
server <- function(input, output) {
  #
  ## Counts how many destinations user wants
  counter <- reactiveValues(n = 0)
  observeEvent(input$add_btn, {counter$n <- counter$n + 1})
  observeEvent(input$rm_btn, {
    if (counter$n > 0) counter$n <- counter$n - 1
  })
  #
  ## Destination selection
  dest <- reactive({
    n <- counter$n
    if (n > 0) {
      isolate({
        lapply(seq_len(n), function(i) {
          selectInput(inputId = paste0("Destination", i),
                      label = paste0("Destination ", i),
                      choices=c(paste0("City_",seq_len(5))))
        })
      })
    }
  })
  output$dest_ui <- renderUI({ dest() })
}

shinyApp(ui, server)

我想做的是当用户单击添加目标按钮时保存选择。

0 个答案:

没有答案