我试图在我闪亮的应用程序中添加第二个inputpanel,其内容取决于第一个inputpanel选择的输入,我试图使用条件面板,但没有运气。
#ui.R
TO <- read.csv("~/TO/TO/TO.csv", sep=";")
library(shiny)
shinyUI(fluidPage(
# Application title
titlePanel("dasboard"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
selectInput("country", label = h4("Pays"),
choices = levels(as.factor(TO$Pays))),
conditionalPanel(
condition = "input.country == 'Allemagne'",
selectInput("to", label = h4("Tour opérateur"),
choices = levels(as.factor(as.character(TO[as.character(TO$Pays)=="Allemagne",]$TO))))),
conditionalPanel(
condition = "input.country == 'Angleterre'",
selectInput("to", label = h4("Tour Operator"),
choices = levels(as.factor(as.character(TO[as.character(TO$Pays)=="Angleterre",]$TO)))))
字符串
...
我发现的解决方案是为第一个inputPanel的每个值创建一个conditionalPanel,但是第二个inputPanel的输出只对第一个值正确。
有人有解决办法吗?
1条答案
按热度按时间mo49yndu1#
我知道下面的方法不是通过条件面板,因为我认为通过下面给出的例子来做会更简单。
首先,您可以使用
updateSelectInput
来更新条目,类似于以下内容字符串
另一种方法是使用
renderUI
创建selectInput
并填充它,如下所示:型
编辑:如何在
renderUI
中添加多个小部件您需要将divs
Package 在tagList()
中,如下所示:型