从服务器向客户端发送数据
在许多情况下,你需要将数据从 R 服务器发送到 JS 客户端。这是一个非常简单的例子:
placeholderCopylibrary(shiny)
runApp(
list(
ui = fluidPage(
tags$script(
"Shiny.addCustomMessageHandler('message', function(params) { alert(params); });"
),
actionButton("btn","Press Me")
),
server = function(input, output, session) {
observeEvent(input$btn,{
randomNumber <- runif(1,0,100)
session$sendCustomMessage("message",list(paste0(randomNumber," is a random number!")))
})
}
)
)
这里的主要工具是 R
中的 session$sendCustomMessage
函数和 javascript
中的 Shiny.addCustomMessageHandler
函数。
session$sendCustomMessage
函数允许你将参数从 R
发送到 javascript
函数,Shiny.addCustomMessageHandler
让你定义接受 R
参数的 javascript
函数。
注意:列表从 R
传递到 javascript
时会转换为 JSON