首页 文章

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

提问于
浏览
4

我正在执行一个非常小的 renderDataTable 示例,该示例发布在http://rstudio.github.io/DT/shiny.html下面的DT github页面上

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 回答

  • 2

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

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

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

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

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

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

相关问题