在Shiny中的renderDataTable无法正确渲染输出

我正在执行一个非常小的renderDataTable示例,该示例发布在下面的DT
github页面上

http://rstudio.github.io/DT/shiny.html

library(shiny)
shinyApp(
  ui = fluidPage(DT::dataTableOutput('tbl')),
  server = function(input, output) {
    output$tbl = DT::renderDataTable(
      iris, options = list(lengthChange = FALSE)
    )
  }
)

但是,我在执行此代码后看到的输出是垃圾,列名称列在一行中没有空格.

《在Shiny中的renderDataTable无法正确渲染输出》

我在卸载DT软件包并重新安装后尝试了这个

devtools::install_github('rstudio/DT')

什么都没有改变,结果仍然相同.我不明白为什么DT :: renderDataTable()不起作用.非常感谢任何建议.

————-更新—————-

在我开始使用Flexdashboard构建一些shinyapps后,我开始注意到这个问题.在安装Flexdashboard软件包之前,一切正常,并且没有问题,安装Flexdashboard后我在使用renderDataTable函数时发现了数据表的这个问题

最佳答案 此问题是在使用renderdatatable函数时无法查看数据表的内容.

如果用户在常规闪亮的应用程序中使用renderdatatable函数从闪亮到flexdashboard尝试运行使用renderdatatable函数的flexdashboard应用程序并切换回闪亮,则会发生这种情况.

flexdashboard库1)不会通过renderdatatable函数渲染数据表,至少从今天开始它没有2)此外,flexdashboard库破坏了datatables包中的一些功能,当用户试图切换回常规Shiny时flexdashboard,用户可能会发现之前工作的renderdatatable函数可能无法准确呈现数据表.

根据JJ Allaire的说法,解决方案是在你的光泽中添加这两条线

 options(DT.fillContainer = FALSE) 
 options(DT.autoHideNavigation = FALSE) 

这将清理flexdashboard在datatable包中创建的所有钩子,并且数据表应该像以前一样在Shiny中正常呈现.

点赞