Rshiny-动态ID条件面板

时间:2018-06-22 16:03:07

标签: shiny

我是Rshiny的新手,这是我的第一个问题。

我正在尝试为文件夹中的每个数据集插入一个复选框和一个条件面板。如何使“条件面板”仅在选中复选框后可见?

由于id是动态的,因此无法访问它的值。 TIA,请帮助我

   dataDetails <- function(id,nameDef) {
    shiny::tags$div(
    class="dataSource",
   fillRow(
  checkboxInput(inputId = paste0("dataSource-", id), 
                label = nameDef,
                width = "100%"),

  conditionalPanel(paste0("input.dataSource-",id), 
                   # uiOutput("dataSourcesDate")) 
                   actionButton("dfcvs","dfvs")
  )
),
br(),
hr()
  )
 }



    lapply(list.files(path = "savefiles"), function(x) {
      insertUI(
   selector = '#dataSources',
    ui = tagList(dataDetails(
     id = x,
     nameDef = x
    ))
  )
  })

1 个答案:

答案 0 :(得分:0)

通常最好的做法是包括一个最小的代码示例,以便人们可以看到您要执行的操作。如果未选中,则checkboxInput的值为0,选中时为1。下面的代码显示了一个简单的工作示例,说明如何使conditionalPanel与checkboxInputs一起工作:

library(shiny)


ui <- shinyUI(
  fluidPage(
    checkboxInput("checkbox1", "Check Box 1", value = FALSE),
    checkboxInput("checkbox2", "Check Box 2", value = FALSE),
    checkboxInput("checkbox3", "Check Box 3", value = FALSE),
    checkboxInput("checkbox4", "Check Box 4", value = FALSE),
    conditionalPanel("input.checkbox1 == 1", "Check Box 1 Ticked"),
    conditionalPanel("input.checkbox2 == 1", "Check Box 2 Ticked"),
    conditionalPanel("input.checkbox3 == 1", "Check Box 3 Ticked"),
    conditionalPanel("input.checkbox4 == 1", "Check Box 4 Ticked")
    )
  )

server <- shinyServer(
  function(input, output, session) {

  }
) 

shinyApp(ui = ui, server = server)