我正在尝试在 R Shiny 中使用 tableau javascript api。我使用shinyjs包来简化shiny中的调用。涉及的js来自tableau的教程页面。
单击“调用 Tableau Viz”按钮后,没有任何反应,浏览器控制台显示未捕获的 [对象对象] 错误
(index):7504 未捕获的 [object Object]VizImpl$Create @ (index):7504$tableauSoftware_Viz @ (index):4829initializeViz @ (index):8644shinyjs.init @(index):34(匿名函数) @ (索引):33_sendMessagesToHandlers @shinyapp.js:515(匿名函数)@shinyapp.js:626_sendMessagesToHandlers@shinyapp.js:515dispatchMessage@shinyapp.js:501c.onmessage@shinyapp.js:114
这应该是一个非常直接的问题,但我不知道如何解决它。
library(shiny)
library(shinyjs)
jsCode <- "shinyjs.init = function(){initializeViz();}"
shinyApp(
ui = fluidPage(
includeScript("https://public.tableau.com/javascripts/api/tableau-2.1.0.js"),
includeScript("http://onlinehelp.tableau.com/samples/en-us/js_api/tutorial.js"),
useShinyjs(),
extendShinyjs(text = jsCode),
actionButton('trigger','Call Tableau Viz'),
tags$div(id = 'tableauViz')
),
server = function(input, output) {
observeEvent(input$trigger, {
js$init()
})
}
)
最佳答案
您对shinyjs.init函数有一个小误解。它会被自动调用。调用 js$init() 将不起作用。如果您在shinyjs.init函数中放置alert("hello")
调用,您将看到它在应用启动时被调用。
关于javascript - 需要通过 javascript API 在 R 内 Shiny 的 Tableau 图表的 Hello world 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39663442/