1

My question is very basic.

INPUT : any key on the keyboard (input$mydata)
SERVER : register all changes occuring in input$data (for instance in a vector) DESIRED OUTPUT: the vector of all values taken by input$mydata
(and maybe the vector is reset when there are for instance 50 values registered)

I try many way, even global values but nothing is working...

Here is the code for displaying the last key input

library(shiny)
runApp( list(ui = bootstrapPage(
  verbatimTextOutput("results"),
  verbatimTextOutput("allInputs"),
  tags$script('
              $(document).on("keypress", function (e) {
              Shiny.onInputChange("mydata", e.which);
              });
              ') 
  )
  , server = function(input, output, session) {

    output$results = renderPrint({
      input$mydata
    })
  }
))
S.Br
  • 33
  • 4

1 Answers1

2

You can append the changes to a reactiveVal:

library(shiny)
runApp( list(ui = bootstrapPage(
  verbatimTextOutput("results"),
  verbatimTextOutput("allInputs"),
  tags$script('
              $(document).on("keypress", function (e) {
              Shiny.onInputChange("mydata", e.which);
              });
              ') 
)
, server = function(input, output, session) {

  output$results = renderPrint({
    input$mydata
  })

  keysPressed <- reactiveVal()

  observeEvent(input$mydata, {
    keysPressed(c(keysPressed(), input$mydata))
  })

  output$allInputs = renderPrint({
    keysPressed()
  })

}
))
ismirsehregal
  • 30,045
  • 5
  • 31
  • 78