【发布时间】:2017-03-31 02:10:25
【问题描述】:
我正在尝试创建一个闪亮的应用程序,允许我动态添加 UI 控件小部件。但是,当前代码将为每个新的 UI 小部件添加一个新行。有没有办法将它们添加到流体行中,这样每行最多需要 4 个小部件。
另外,有没有一种方法可以在不默认所有当前选择的情况下添加/删除控件小部件?我现在拥有的代码基本上会在每次点击“添加”或“删除”按钮时重新生成控件小部件,这意味着所有选择都将重置为默认值。
非常感谢您的帮助。 代码如下。
谢谢!
library(shiny)
ui <- shinyUI(fluidPage(
mainPanel(
actionButton("add_btn", "Add Box"),
actionButton("rm_btn", "Remove Box"),
uiOutput("interactionUI"))
))
server <- shinyServer(function(input, output, session) {
# Track the number of input boxes to render
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
})
interaction <- reactive({
n <- counter$n
if (n > 0) {
lapply(seq_len(n), function(i) {
selectInput(inputId = paste0("item", i),
label = paste0("Item", i), choices=c("test","test2"),
selected = NULL,
multiple = 8, selectize = TRUE, width = "20%", size = NULL)
})
}
})
output$interactionUI <- renderUI({ interaction() })
})
shinyApp(ui, server)
【问题讨论】:
-
看insertUI/removeUI的demo gallery.shinyapps.io/111-insert-ui
-
您好 Geovany,谢谢您的来信。我的问题是有没有办法将这些插入的 UI 放入一个流式行中。这样当你添加新的 UI 项时,它会在水平方向添加,而不是在垂直方向堆叠所有新 UI。
标签: r user-interface shiny