簡體   English   中英

HTMLWidget:Shiny應用在Rstudio中運行良好,但在Shiny-Server上卻無法運行

[英]HTMLWidget: Shiny app run well in Rstudio but Not on Shiny-Server

最近,我編寫了一個html小部件,以使用javascript文件進行維恩圖繪制。 在RStudio中,該應用程序運行良好,因此到目前為止,我還沒有意識到在閃亮的服務器上使用該應用程序會出現問題。

如果我在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)

希望任何人都能幫助我。 謝謝!!!

附言:R和a軟件包是最新的,我的操作系統是WINDOWS 10。

我們已經找到了問題的原因。 Shiny按小寫導入jquery,按大寫導入jVennConductor,這就是導致錯誤的原因。 只需將其更改為小寫即可解決問題。

多虧鄭Cheng

https://github.com/ramnathv/htmlwidgets/issues/253

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM