R 有条件和tabsetpanel未按预期工作时发亮
我有一个闪亮的应用程序,在侧边栏面板中有tabsetpanels和conditional面板。问题是其中一个条件面板在不应该出现的时候也会出现。下面是代码:我在侧边栏面板中显示面板的名称。如果我单击“假设和场景”,然后在侧边栏面板中单击“假设”,我希望只看到“假设”,但也会看到“汽车总量”。我已经研究了两个多小时的代码,并对其进行了修改,但我找不到错误(或者可能是一个bug)。 我非常感谢你的帮助。这是密码R 有条件和tabsetpanel未按预期工作时发亮,r,shiny,R,Shiny,我有一个闪亮的应用程序,在侧边栏面板中有tabsetpanels和conditional面板。问题是其中一个条件面板在不应该出现的时候也会出现。下面是代码:我在侧边栏面板中显示面板的名称。如果我单击“假设和场景”,然后在侧边栏面板中单击“假设”,我希望只看到“假设”,但也会看到“汽车总量”。我已经研究了两个多小时的代码,并对其进行了修改,但我找不到错误(或者可能是一个bug)。 我非常感谢你的帮助。这是密码 ui <- fluidPage( sidebarLayout( sid
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
conditionalPanel(
condition = "input.tabs_a == 't_ass'",
h4("Assumptions")
),
conditionalPanel(
condition = "input.tabs_c == 't_cara'",
h4("Car aggregate")
), # End conditionalPanel
conditionalPanel(
condition = "input.tabs_c == 't_carf'",
h4("Car fuel")
), # End conditionalPanel
conditionalPanel(
condition = "input.tabs_c == 't_carfp'",
h4("Car fuel power:")
) # End conditionalPanel
), # End sidebarPanel
mainPanel(
tabsetPanel(
type = "tabs",
tabPanel(
"Assumptions and Scenarios",
tabsetPanel(
type = "tabs", id = "tabs_a",
tabPanel(
"Assumptions", value = "t_ass"
), # Close tabpanel t_ass,
tabPanel(
"Scenarios", value = "t_scen"
) # Close tabpanel t_scen
) # Close tabsetpanel
), # Close tabPanel t_Ass
tabPanel(
"Transport results",
tabsetPanel(
type = "tabs", id = "tabs_c",
tabPanel(
"Cars: Aggregated", value = "t_cara"
), # Close tabpanel t_cara
tabPanel(
"Cars: Fuel", value = "t_carf"
), # Close tabpanel
tabPanel(
id = "t_carfp",
"Cars: Fuel vs Power", value = "t_carfp",
) # Close tabpanel t_carfp
) # Close tabset tabs_c
) # Close tabpanel Transport results
) # Close tabset tabs_a
) # End mainPanel
) # End sidebarLayout
) # End fluidPage
server <- function(input, output) {
}
shinyApp(ui = ui, server = server)
ui我找到了解决方案:它需要两个条件,一个是针对tabsetpanel id,另一个是针对tabpanel值。代码如下:
ui <- fluidPage(sidebarLayout(
sidebarPanel(
conditionalPanel(
condition = "input.tabs == 'a1' && input.tabs_a == 't_ass'", ns = NS(NULL),
h4("Assumptions")
),
conditionalPanel(
condition = "input.tabs == 'a1' && input.tabs_a == 't_scen'", ns = NS(NULL),
h4("Scenarios")
),
conditionalPanel(
condition = "input.tabs == 't1' && input.tabs_c == 't_cara' ", ns = NS(NULL),
h4("Car aggregate")
), # End conditionalPanel
conditionalPanel(
condition = "input.tabs == 't1' && input.tabs_c == 't_carf' ", ns = NS(NULL),
h4("Car fuel")
), # End conditionalPanel
conditionalPanel(
condition = "input.tabs == 't1' && input.tabs_c == 't_carfp' ",
h4("Car fuel power:")
) # End conditionalPanel
), # End sidebarPanel
mainPanel(
tabsetPanel(
type = "tabs", id = "tabs",
tabPanel(id = 'a1', value = 'a1',
"Assumptions and Scenarios",
tabsetPanel(
type = "tabs", id = "tabs_a",
tabPanel(
"Assumptions", value = "t_ass"
), # Close tabpanel t_ass,
tabPanel(
"Scenarios", value = "t_scen"
) # Close tabpanel t_scen
) # Close tabsetpanel
), # Close tabPanel t_Ass
tabPanel(id = "t1", value = "t1",
"Transport results",
tabsetPanel(
type = "tabs", id = "tabs_c",
tabPanel(
"Cars: Aggregated", value = "t_cara"
), # Close tabpanel t_cara
tabPanel(
"Cars: Fuel", value = "t_carf"
), # Close tabpanel
tabPanel(
id = "t_carfp",
"Cars: Fuel vs Power", value = "t_carfp",
) # Close tabpanel t_carfp
) # Close tabset tabs_c
) # Close tabpanel Transport results
) # Close tabset tabs_a
) # End mainPanel ) # End sidebarLayout) # End fluidPage server <- function(input, output) { } hinyApp(ui = ui, server = server)
ui