闪亮的reactiveUI在相同的条件变量上挂起多个uiOutput调用

Jim*_*ier 5 r shiny

我试图用滑块进行反应式UI,通过闪亮的下拉进入和退出.我有一个带有reactiveUI滑块的服务器(server.R):

library(shiny)
shinyServer(function(input, output) {
  output$slider1 <- reactiveUI(function() {
    sliderInput("s1", "slide 1", min = 1,  max = 100, value = 1)  
  })

  output$slider2 <- reactiveUI(function() {
    sliderInput("s2", "slide 2", min = 1,  max = 100, value = 1)   
  }) 
})
Run Code Online (Sandbox Code Playgroud)

我可以使用以下代码(ui.R)运行服务器:

library(shiny)
shinyUI(pageWithSidebar(
  headerPanel("Hello Shiny!"),
  sidebarPanel(

    selectInput("dataset", "number of buckets:", 
                choices = c(1,2,3)),

    conditionalPanel(
      condition = "input.dataset==2",
      uiOutput("slider1"),uiOutput("slider2")),

    conditionalPanel(
      condition = "input.dataset==1",
      sliderInput("s1", "slide 1", min = 1,  max = 100, value = 1) 
      )
  ),
  mainPanel(
  )
))
Run Code Online (Sandbox Code Playgroud)

但如果我尝试让两个conditionalPanel调用uiOutput,服务器会冻结:

library(shiny)
shinyUI(pageWithSidebar(
  headerPanel("Hello Shiny!"),
  sidebarPanel(

    selectInput("dataset", "number of buckets:", 
                choices = c(1,2,3)),

    conditionalPanel(
      condition = "input.dataset==2",
      uiOutput("slider1"),uiOutput("slider2")),

    conditionalPanel(
      condition = "input.dataset==1",
      uiOutput("slider1") 
      )
  ),
  mainPanel(
  )
))
Run Code Online (Sandbox Code Playgroud)

我已经玩过这个,发现它会在任何时候使用相同的条件变量和多个uiOutput调用.有什么建议?谢谢.

ctb*_*own 5

请参阅@Joe的评论以获得答案.

基本上,outputIDs并且inputIDs必须是独特的; 在同一页面上具有相同ID的两个UI元素会发出错误.这是光泽反应性的限制.

@Jim的工作是为客户端使用的每个输出或输入创建多个元素,例如

 output$slider2_1 <- ...
 output$slider2_2 <- ...
Run Code Online (Sandbox Code Playgroud)