1

R Shiny 内で tableau javascript api を使用する実験を行っています。光沢のある呼び出しを簡素化するために、shinyjs パッケージを使用しました。関連する js は、tableau のチュートリアル ページから取得されます。

[Tableau Viz を呼び出す] ボタンをクリックしても何も起こらず、ブラウザー コンソールに Uncaught [object Object] エラーが表示される

(index):7504 Uncaught [object Object]VizImpl$Create @ (index):7504$tableauSoftware_Viz @ (index):4829initializeViz @ (index):8644shinyjs.init @ (index):34(匿名関数) @ (index): 33_sendMessagesToHandlers @shinyapp.js:515(匿名関数)@shinyapp.js:626_sendMessagesToHandlers@shinapp.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()
    })
  }
)
4

1 に答える 1

0

あなたは、shinyjs.init 関数について少し誤解しています。自動的に呼び出されます。通話js$init()は機能しません。Shinyjs.init 関数内でalert("hello")呼び出しを行うと、アプリの起動時に呼び出されることがわかります。

于 2016-09-23T18:37:44.550 に答える