如何让用户输入文本并创建闪亮的列表? R

How to have a user input text and create a list with shiny? R

我有以下允许输入文本的应用程序,然后将其保存为 VALUE 并打印在面板上。

虽然看起来我一次只能输入一个文本 - 即使我点击添加(所以我不相信这个按钮有效)。最重要的是,我希望用户能够添加多个输入(如下所示)。

然后我的 VALUE 函数应该是包含多个输入的列表。

下面的代码

library(shiny)


ui <- fluidPage(
  headerPanel("R Package App"),
  
  sidebarPanel(
    #  selectInput("options", "options", choices=c('abc','def')),
    textInput("textbox", "Enter R Package Name", ""),
    actionButton("add","Add")
  ),
  
  mainPanel(
    textOutput("caption")
  )
)
server <- function(input, output, session) {
  observe({
    VALUE <- ''
    if(input$add>0) {
      isolate({
        VALUE <- input$textbox
      })
    }
    updateTextInput(session, inputId = "textbox", value = VALUE)
  })
  
  output$caption <- renderText({
    input$textbox
  })
}

shinyApp(ui = ui, server = server)

您是否考虑过使用 selectizeInput 及其 create 选项?

library(shiny)

packagesDF <- as.data.frame(installed.packages())

ui <- fluidPage(
  headerPanel("R Package App"),
  sidebarPanel(
    selectizeInput(
      inputId = "selectedPackages",
      label = "Enter R Package Name",
      choices = packagesDF$Package,
      selected = NULL,
      multiple = TRUE,
      width = "100%",
      options = list(
        'plugins' = list('remove_button'),
        'create' = TRUE,
        'persist' = TRUE
      )
    )
  ),
  mainPanel(textOutput("caption"))
)

server <- function(input, output, session) {
  output$caption <- renderText({
    paste0(input$selectedPackages, collapse = ", ")
  })
}

shinyApp(ui = ui, server = server)