【发布时间】:2018-02-14 22:24:17
【问题描述】:
我无法理解 conditionalPanel() 的一些奇怪行为。根据用户输入,应显示部分不同的消息。在任何情况下都应显示一个元素。见例子:
## Only run this example in interactive R sessions
if (interactive()) {
ui <- fluidPage(
sidebarPanel(
selectInput("option", "Select option",
c("A", "B", "C"),
selected = "B"
)
),
mainPanel(
uiOutput("test0"),
uiOutput("test1")
)
)
server <- function(input, output) {
output$msg <- renderText("Some text")
output$test0 <- renderUI({
conditionalPanel(
condition = "input.option == 'B' || input.option == 'C'",
verbatimTextOutput("msg"),
wellPanel(h4("Are you sure you don't want to select A?")))
})
output$test1 <- renderUI({
conditionalPanel(
condition = "input.option == 'A'",
verbatimTextOutput("msg"),
wellPanel(h4("Good choice!")))
})
}
shinyApp(ui, server)
}
这个迷你示例中的明显解决方案是将verbatimTextOutput() 移到conditionalPanel() 之外,但是我想知道是否有其他方法可以解决这个问题。
【问题讨论】:
-
我认为问题在于您定义了两个具有相同 ID 的
verbatimTextOutputs。也许闪亮的默认行为会忽略第二个?