消失按钮 - 点击后

时间:2015-01-11 19:40:59

标签: r shiny

我希望sidebarPanel中有一个按钮(比如A),这样在使用它之后,另一个按钮(比如说B)将被激活(通过renderUI),但是按钮A将会消失。我怎么能这样做

这是我天真的解决方案。我不知道如何避免将按钮状态引用到自身:

library(shiny)
runApp(list(

   ui = fluidPage(
      uiOutput("answer"),
      uiOutput("part2")
      ),

   server = function(input, output) {

      output$answer <- renderUI({
         if(input$continue == 0){
            checkboxGroupInput(inputId = "firstQ", label = "First question", choices = c("Ans. A" = "a", "Ans. B" = "b"))
            actionButton("continue", "Continue")}
      })

      output$part2 <- renderUI({
         if(input$kontynuuj > 0)
            actionButton("newButton", "New button")
      })

   }
))

1 个答案:

答案 0 :(得分:3)

我认为您conditionalPanel中的ui是您需要在此处使用的内容。它将允许您设置一个条件,以确定是否显示部分UI。

在下面的代码中,我将checkboxGroupInput和第一个actionButton移至了ui,并将第二个actionButton移至renderUIconditionalPanel将以任何一种方式运作。

每个conditionalPanel评估&#34;继续&#34;按钮,按下之前的第一个按钮,之后的第二个按钮。

重要的是要注意条件必须用javascript编写,而不是R.请参阅?conditionalPanel了解详细信息。

library(shiny)
runApp(list(
  ui = fluidPage(             
     conditionalPanel(condition="input.continue==0",
          checkboxGroupInput(inputId = "firstQ", label = "First question", 
              choices = c("Ans. A" = "a", "Ans. B" = "b")), 
          actionButton("continue", "Continue")   
      ),

      conditionalPanel(condition="input.continue>0",
          uiOutput("part2")
      )
  ),

  server = function(input, output) {
    output$part2 <- renderUI({
        actionButton("newButton", "New button")
    })

  }
))