我发现,当我使用 includeHTML 包含从 Rmarkdown 文件生成的 HTML 文档,并在同一个 R Shiny 应用程序中使用 DT::dataTableOutput/renderDataTable 时,我收到 JavaScript 错误“Uncaught TypeError: Cannot read property '从 Shiny JS 代码中过滤“未定义”。 我发现这个错误发生在 Shiny 版本 0.13.0 和 0.14.1 中。
R-3.1.2> sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] DT_0.2 shiny_0.13.0
loaded via a namespace (and not attached):
[1] digest_0.6.8 htmltools_0.3.5 htmlwidgets_0.7 httpuv_1.3.3 magrittr_1.5 mime_0.3 R6_2.1.0 Rcpp_0.12.3
[9] tools_3.1.2 xtable_1.7-4 yaml_2.1.13`
我创建了一个 R Shiny 应用程序,在 GitHub 上演示了这一点:https://github.com/CliffordWollam/shiny_rmd_error。
我知道我迟到了 7 年零 11 个月,但没有将 js 加载到 html 脚本中,并且仅在闪亮的应用程序中使用 useShinyjs() 对我有用。看起来闪亮的 js 脚本和加载的 html 脚本与许多小部件不兼容。所以无论谁读它,只需创建一个不带 js 的 html 文件就可以了。