我是Shiny的新手,我有这个代码。我创建了3个tabPanel。当我运行Shiny App时 - 它显示了所有选项卡中的所有条件。根据我选择的选项卡,它应该只显示已满足条件的项目。我已经像其他人建议的那样更改了项目的不同名称,但似乎仍然无法实现。
任何帮助都非常感谢。
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
conditionalPanel(
condition="input.tabselected=='AAA'",
selectInput("selectDisease1",
label="Select Disease:",
choices=c("Disease 1","Disease 2")
),
selectInput("selectProduct1",
label="Select Products:",
choices=product.list,
selected=NULL,
multiple=TRUE
),
selectInput("selectStartDate1",
label="Select Start Date:",
choices=names(SBI[c(5:num.columns)]),
selected = 1
),
selectInput("selectEndDate1",
label="Select End Date:",
names(SBI[c(5:num.columns)]),
selected = 1
),
submitButton("Submit")
),
conditionalPanel(
condition="input.tabs=='Data'",
selectInput("selectDisease2",
label="Select Disease:",
choices=c("Disease 1","Disease 2")
),
selectInput("selectProduct2",
label="Select Products:",
choices=product.list,
selected=NULL,
multiple=TRUE
),
selectInput("selectStartDate2",
label="Select Start Date:",
choices=names(SBI[c(5:num.columns)]),
selected = 1
),
selectInput("selectEndDate2",
label="Select End Date:",
names(SBI[c(5:num.columns)]),
selected = 1
),
numericInput("lines2",
label="Number of Lines:",
value=1
),
dateRangeInput('dateRange2',
label = paste('Date range input 1:'),
separator = " - ",
format = "yyyy-mm",
startview = 'month'
),
submitButton("Submit")
),
conditionalPanel(
condition="input.tabs=='Plot'",
selectInput("selectDisease3",
label="Select Disease Stage:",
choices=c("Disease Stage 1","Disease Stage 2")
),
selectInput("selectProduct3",
label="Select Products:",
choices=product.list,
selected=NULL,
multiple=TRUE
),
selectInput("selectStartDate3",
label="Select Start Date:",
choices=names(SBI[c(5:num.columns)]),
selected = 1
),
selectInput("selectEndDate3",
label="Select End Date:",
names(SBI[c(5:num.columns)]),
selected = 1
),
numericInput("trends3",
label="Number of Linear Trends:",
value=1
),
dateRangeInput('dateRange3',
label = paste('Date range input 1:'),
separator = " - ",
format = "yyyy-mm",
startview = 'month'
),
dateRangeInput('dateRange4',
label = paste('Date range input 2:'),
separator = " - ",
format = "yyyy-mm",
startview = 'month'
),
submitButton("Submit")
)
),
mainPanel(
titlePanel("Assessment"),
tabsetPanel(
id = "tabselected",
selected = NULL,
tabPanel("AAA Disease State",
value="AAA",
tags$hr(),
DT::dataTableOutput("sbirx.view", width = 300)
),
tabPanel("Data",
value="Data",
tags$hr(),
DT::dataTableOutput("sbirx.view", width = 300)
),
tabPanel("Plot",
value="Plot",
tags$hr(),
DT::dataTableOutput("sbirx.view", width = 300)
)
)
) # end of main panel
) # end of sidebarLayout
) # end of fluidpage
答案 0 :(得分:0)
如果面板内有conditionalPanel
,则submitButton()
无法解决问题(可能是它的意图)。
要修复它,请使用actionButton()
。
请注意,您必须适当更改服务器代码。
答案 1 :(得分:0)
问题在于渲染数据表,输出应该是唯一的。您只能渲染sbirx.view
一次,如果要显示输出3次,则分配sbirx.view2
和sbirx.view3
之类的内容,然后再渲染它。同时删除submitButton
并将actionButton
分配给每个@GGamba建议
tabsetPanel(
id = "tabselected",
tabPanel("AAA Disease State",
value=10,
tags$hr()
#,DT::dataTableOutput("sbirx.view", width = 300)
),
tabPanel("Data",
value=20,
tags$hr()
#,DT::dataTableOutput("sbirx.view", width = 300)
),
tabPanel("Plot",
value=30,
tags$hr()
#,DT::dataTableOutput("sbirx.view", width = 300)
)
)