从客户端向服务器发送数据

在某些情况下,你需要将数据从 JS 客户端发送到 R 服务器。这是使用 javascript 的 Shiny.onInputChange 函数的基本示例:

library(shiny)
runApp(
  list(
    ui = fluidPage(
      # create password input
      HTML('<input type="password" id="passwordInput">'),
      # use jquery to write function that sends value to
      # server when changed
      tags$script(
        '$("#passwordInput").on("change",function() {
          Shiny.onInputChange("myInput",this.value);
        })'
      ),
      # show password
      verbatimTextOutput("test")
    ),
    server = function(input, output, session) {
      # read in then show password
      output$test <- renderPrint(
        input$myInput
      )
    }
  )
)

在这里,我们创建一个 id 为 passwordInput 的密码输入。我们在 UI 上添加了一个 Javascript 函数,它响应 passwordInput 中的更改,并使用 Shiny.onInputChange 将值发送到服务器。

Shiny.onInputChange 有两个参数,input$*name*的名称,加上 input$*name*的值

然后你可以像任何其他 Shiny 输入一样使用 input$*name*