添加到 Geovany 和 Tiffany 的答案中,如果您希望文本内容是动态的,您可以使用 shinyjs::html 函数根据用户输入进行更改。
例如,我使用它在标题中显示所选选项卡的名称。只要您为侧边栏菜单指定了id,就可以在服务器功能中访问选定的选项卡名称,在我的例子中是tabs。
我还必须将 id 添加到附加到 Geovany 代码中标题的 div 中,在本例中为 pageHeader。
然后将此添加到服务器函数将更改标题文本以显示所选选项卡,switch 用于创建更美观的标题格式。注意dashboardPage参数中的useShinyJs():
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(
title = "demo"
),
dashboardSidebar(),
dashboardBody(
tags$head(tags$style(HTML(
'.myClass {
font-size: 20px;
line-height: 50px;
text-align: left;
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
padding: 0 15px;
overflow: hidden;
color: white;
}
'))),
tags$script(HTML('
$(document).ready(function() {
$("header").find("nav").append(\'<div id="pageHeader" class="myClass"></div>\');
})
'))
),
useShinyjs()
)
server <- function(input, output) {
observeEvent(input$tabs, {
header <- switch(input$tabs,
tab1 = "Tab 1",
tab2 = "Tab 2",
tab3 = "Tab 3")
# you can use any other dynamic content you like
shinyjs::html("pageHeader", header)
})
}
shinyApp(ui, server)