我希望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")
})
}
))
答案 0 :(得分:3)
我认为您conditionalPanel
中的ui
是您需要在此处使用的内容。它将允许您设置一个条件,以确定是否显示部分UI。
在下面的代码中,我将checkboxGroupInput
和第一个actionButton
移至了ui,并将第二个actionButton
移至renderUI
。 conditionalPanel
将以任何一种方式运作。
每个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")
})
}
))