shinydashboardPlus::boxDropdown()中图标无法显示问题
修复方案
图标无法正常显示由几个典型的使用问题导致,按以下调整即可正常运行:
- 补充加载
shinydashboardPlus包:仅通过::调用包内R函数,不会自动把包依赖的前端CSS、JS、图标字体资源注入到Shiny页面中,这是最常见的诱因。 - 替换无效图标名:你使用的
circle-ellipsis是Font Awesome付费Pro版专属图标,免费版图标库中不存在对应资源,自然无法渲染。如果使用2.x及以上版本的shinydashboardPlus,免费版可直接使用ellipsis(横向三点)作为替代;如果是0.x旧版本,对应横向三点的FA4图标名为ellipsis-h。 - 参考截图中圆圈包裹三点的样式属于Pro付费资源,免费环境下可以换用风格接近的
circle-chevron-down(圆圈加向下箭头)、gear(齿轮)作为下拉触发图标,完全不影响交互识别。
修正后的可运行完整代码:
library(shiny) library(shinydashboard) # 必须加载包以注册前端资源依赖 library(shinydashboardPlus) shinyApp( fluidPage( titlePanel("Telephones by region"), sidebarLayout( sidebarPanel( selectInput("region", "Region:", choices=colnames(WorldPhones)), hr(), helpText("Data from AT&T (1961) The World's Telephones.") ), mainPanel( box( plotOutput("phonePlot"), title = "Hi!", width = 12, closable = TRUE, collapsible = TRUE, dropdownMenu = boxDropdown( boxDropdownItem("Hi!"), boxDropdownItem("Hello!"), icon = icon("ellipsis") ) ) ) ) ), function(input, output) { output$phonePlot <- renderPlot({ barplot(WorldPhones[,input$region]*1000, main=input$region, ylab="Number of Telephones", xlab="Year") }) } )
若仍存在渲染异常,先执行
install.packages("shinydashboardPlus")将包升级到最新CRAN版本,规避新旧版本API不兼容问题。
内容的提问来源于stack exchange,提问作者Williams86
相关产品推荐
相关产品推荐

