You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 12:03:16