最近我写了一个html小部件,用于为维恩图绘制使用JavaScript文件。在RStudio中,该应用程序工作正常,所以我没有意识到在闪亮的服务器上使用应用程序时存在问题。HTMLWidget:闪亮的应用程序在Rstudio中运行良好,但不在Shiny服务器上
如果我在RStudio中使用Shiny运行应用程序,则不会出现任何错误,Web浏览器会显示除Shiny页面外的所有其他元素,但新窗口小部件除外。考虑到浏览器的开发者控制台,我看到以下错误,这对我来说是一种隐秘的方式。
Uncaught TypeError: Cannot read property 'filter' of undefined
at exports.OutputBinding.shinyBinding.find (htmlwidgets.js:475)
at a (shiny.min.js:3)
at f (shiny.min.js:3)
at initShiny (shiny.min.js:3)
我也在RStudio之外运行它,以确保同样的错误。
我已经测试过2个独立的软件包,所以它似乎是我身边的系统性错误。
通过检查浏览器中正在运行的应用程序,我看到下面的div被创建。但是,我找不到提交的数据。
<div id="vennDia" style="width:100%; height:400px; " class="vennConductor html-widget html-widget-output"></div>
vennConductor.js:
HTMLWidgets.widget({
name: 'vennConductor',
type: 'output',
initialize: function(el, width, height) {
},
renderValue: function(el, x, instance) {
// console.log(x)
$(el).jvenn(x)},
resize: function(el, width, height, instance) {
$(el).attr("width", width).attr("height", height)
}
});
在我看来“有关” HTMLWidget R代码里面:
htmlwidgets::createWidget(
name = 'vennConductor',
json_payload,
width = width,
height = height,
package = 'vennConductor',
elementId = elementId,
sizingPolicy = htmlwidgets::sizingPolicy(
browser.fill = TRUE,
viewer.fill = TRUE
)
)
#' @name vennConductor-shiny
#' @export
vennConductorOutput <- function(outputId, width = '100%', height = '400px'){
htmlwidgets::shinyWidgetOutput(outputId, 'vennConductor', width, height, package = 'vennConductor')
}
#' @rdname vennConductor-shiny
#' @export
renderVennConductor <- function(expr, env = parent.frame(), quoted = FALSE) {
if (!quoted) { expr <- substitute(expr) } # force quoted
htmlwidgets::shinyRenderWidget(expr, vennConductorOutput, env, quoted = TRUE)
}
和控件调用:
jVennConductor(elementId = 'vennDia', venn_lists = vlist_01, displayMode=T, displayStat=T)
希望任何人都可以帮帮我。谢谢!!!
P.S:R和套餐均达到最新的,我的操作系统是Windows 10