Highcharter 不会自动调整 shinydashboard 中的输出大小

Highcharter is NOT automatically resize output in shinydashboard

highcharter包的development-version存在以下问题:

highchartOutput 在 shinydashboard 中隐藏侧边栏时,不会自动调整图表的宽度。图的宽度始终保持不变。

我这里举个例子,

# install development-version of highcharter
# devtools::install_github("jbkunst/highcharter")

library(shinydashboard)
library(shiny)
library(highcharter)
library(dplyr)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(
    box(
      width = 12,
      highchartOutput("plot")
    )
  )
)

server <- function(input, output) {

  output$plot <- renderHighchart({
    highcharts_demo()
  })
}

shinyApp(ui, server)

我试过了

$(document).on("click", ".sidebar-toggle", function() { $(window).trigger("resize"); });

但是当我使用 renderHighcharthighchartOutput 函数时,它仍然不适用于开发版 highcharter。

不过,我发现

对于这个大小调整问题有什么建议吗?

经过更多研究,我得到了解决方案。在开发版highcharter中,修改highcharter.js文件中的代码如下:

/* fix bug here */
 resize: function(el, width, height, instance) {

   /*  */
   var chart = $("#" +el.id).highcharts();
   var height = chart.renderTo.clientHeight; 
   var width = chart.renderTo.clientWidth; 
   chart.setSize(width, height); 

 }

然后自动调整大小将正常工作。