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

时间:2016-05-23 00:53:00

标签: r datatables shiny dt

我正在执行下面DT github页面上发布的非常小的renderDataTable示例 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)
    )
  }
)

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

enter image description here

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

devtools::install_github('rstudio/DT')

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

------------- ----------------更新

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

1 个答案:

答案 0 :(得分:2)

此问题是在使用renderdatatable函数时无法查看数据表的内容。

如果在常规闪亮应用中使用renderdatatable功能的用户从闪亮切换到flexdashboard尝试运行使用flexdashboard功能的renderdatatable个应用并切换回光泽

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

根据JJ Allaire的说法,解决方案是在闪亮的

中添加这两行
 options(DT.fillContainer = FALSE) 
 options(DT.autoHideNavigation = FALSE) 

这将清除flexdashboard包中创建的所有挂钩datatable,数据表应该像Shiny中那样正常呈现。