gpt4 book ai didi

javascript - 为什么 console.log 不是 Shiny for R 中的函数?

转载 作者:行者123 更新时间:2023-11-28 13:14:48 24 4
gpt4 key购买 nike

我包括JavaScriptShinys ui.R像这样:

tags$body(tags$script(src="someJs.js"))

在我的someJs.js内我有一个函数

function someFunc1() {
....;
}

... some more code ...

console.log(variable1);

console.log位于函数 soemFunc1() 之外外部 。当我启动应用程序并查看控制台时,我得到

console.log() is not a function.

这是为什么?

我还加载d3在头上tags$head(tags$script(src="d3.v3.min.js")) 。当我尝试 d3.select...在控制台中,我也得到了

d3 is not a function.

但是,我使用d3在我的应用程序中进行样式设置。

什么是Shinyjs 一起做。是否有一个对象可以将所有东西附加到其上?!

这是一个示例,易于重现。

ui.R

library(shiny)

shinyUI(fluidPage(
tags$head(tags$script(src="https://d3js.org/d3.v3.min.js")),
tags$head(tags$script(src="test.js")),
mainPanel(
tags$div(id = "test", "test test test")
)
)

)

server.R

library(shiny)

shinyServer(function(input, output) {

})

创建一个www文件夹位于 server.R 的同一目录中和ui.R并保存 js文件名为 test.js包含以下内容:

console.log("This will cause error")

现在,继续打开控制台。它说

console.log() is not a function

尝试在浏览器的控制台中输入 d3 。它说

d3 is not a function.

最佳答案

console.log() 是一个 JavaScript 函数,因此您不能在 R-Shiny 中调用它并期望它在 JavaScript 中运行。您必须明确告诉 Shiny 在 JavaScript 中进行该调用。

由于这对我来说是一个相当常见的操作,因此我将其包含在包shinyjs中,您可以调用 R 中的 logjs() 函数,它将输出写入 JavaScript 控制台。

示例:

shinyApp(
ui = fluidPage(
shinyjs::useShinyjs() # Set up shinyjs
),
server = function(input, output) {
shinyjs::logjs("hello")
}
)

关于javascript - 为什么 console.log 不是 Shiny for R 中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39500299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com