r语言 - 与库bs4Dash结合后,文本不显示在闪亮的仪表板标题中



我试图在闪亮的仪表板标题中包含一些文本。当我将它与库bs4Dash结合使用时,文本不再显示。

library(shiny)
library(shinydashboard)
library(bs4Dash)
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: black;
}
'))),
tags$script(HTML('
$(document).ready(function() {
$("header").find("nav").append('<span class="myClass"> Text Here </span>');
})
'))
)
) 
server <- function(input, output) { } 
shinyApp(ui, server)

TL;DR两种场景的DOM结构不同

原因是当您仅使用shinydashboard和添加额外的bs4Dash时,dashboardHeader具有不同的标签结构。小心使用它,因为它会暴露出许多不同的问题,比如dropdownMenudashboardHeader中,这对于这样的软件包组合来说看起来非常糟糕。

第一个例子:

library(shiny)
library(shinydashboard)
# jquery
# $("header").find("nav").append('<span class="myClass"> Text Here </span>');

第二种情况,我不觉得这个选择器是优雅的。最好的方法是自定义tags$div(id = "xyz")并向其注入文本,但在使用仪表板时,这不是那么明显。总而言之,它是有效的。

library(shiny)
library(shinydashboard)
library(bs4Dash)
# jquery
# $("body > div.wrapper > nav > ul:nth-child(1)").append('<span class="myClass"> Text Here </span>');

相关内容

  • 没有找到相关文章

最新更新