这是一个简单的Shiny应用程序的代码:
UI
library(shiny)
shareholders.list <- c("Investor A", "Investor B")
tmp.label.select.inv <- "Select one or multiple investors:"
shinyUI(navbarPage(
title = "App",
titlePanel(title = "TITLE"),
tabPanel("Tab 1"
, sidebarLayout(
sidebarPanel(
style = "font-family: 'Segoe UI';
color: #FFFFFF;
background: #014d92;",
selectInput("tmp.IDs",
label = tmp.label.select.inv,
choices = union("All", shareholders.list),
multiple = T,
width = 245
),
actionButton("select.all",
em("Select / Deselect All"),
icon = icon("ok-sign", lib = "glyphicon"),
width = 245,
style="color: #000000;
background: #FFFFFF;
border-color: #000000"
),
width = 2
),
mainPanel(
h5(em("Chosen Investors: "),
br(),strong(textOutput("selected_tmp.IDs"))),
br(),br(),
tableOutput("table_tmp.IDs")
),
position = "left"
)
)
, tabPanel("Download Tables",
mainPanel(
textOutput("odd_even_select.all")
))
, selected = "Tab 1"
)
)
服务器
shinyServer(function(input, output) {
output$selected_tmp.IDs <- renderText({
paste0(input$tmp.IDs)
})
})
问题是应用程序一直显示&#34; tab-pane active tab-5966-1 &#34;在两个标签上。
知道怎么解决吗?
我已经编辑了代码并添加了更多细节以便可复制(请注意,上面实例中不需要的显示现在表示&#34; tab-25-25-1&#34; - 参见下面的图片)。< / p>
答案 0 :(得分:0)
您遇到的问题是您使用函数shiny::titlePanel
的输出作为navbarPage
的参数。这是一个更简单的应用程序,基本上导致相同的行为
library(shiny)
shinyApp(
ui = navbarPage(
title = "app",
titlePanel("Title"),
tabPanel("Tab1", "content1"),
tabPanel("Tab2", "content2")
),
server = function(input, output){}
)
从?navbarPage
的文档中可以清楚地看到,所有未命名的参数(...
)都应该是tabPanel
元素或字符串。
...
要包含在页面中的tabPanel元素。 navbarMenu函数也接受字符串,它将用作菜单部分标题。如果字符串是一组破折号,如&#34; ----&#34;菜单中将显示水平分隔符。
当你在这里放titlePanel
时,我不知道你期望发生什么。您是希望标题显示在每个标签中还是与"app"
标题一起显示?
无论如何,删除titlePanel
可解决问题
shinyApp(
ui = navbarPage(
title = "app",
tabPanel("Tab1", "content1"),
tabPanel("Tab2", "content2")
),
server = function(input, output){}
)