javascript - Shiny未检测到shiny :inputchanged event

标签 javascript r shiny

如果应用程序能够检测到上次单击或更新的小部件的 ID,那么我为 Shiny 的应用程序设计所采用的方法将是最简单的。

This问题的出现解决了问题。但是,当我使用接受的答案运行 MCVE 时,我根本没有任何反应。

当前代码如下。这本质上是链接的问题,并从已接受的答案中进行了明显的替换。

library(shiny)

ui <- fluidPage(
  tags$head(
    # taken from accepted answer
    tags$script(
      HTML("$(document).on('shiny:inputchanged', function(event) {
          Shiny.setInputValue('last_input', event.name);
        });")
    )
    # through to here
  ),
  
  numericInput("num1", "Numeric", 0),
  textInput("text1", "Text"),
  selectInput("select1", "Select", choices = LETTERS[1:4]),
  selectInput("selectize1", "Selectize", choices = letters[1:4]),
  
  textOutput("textout")
)

server <- function(input, output, session) {
  output$textout <- renderText({
    input$last_input
  })
}

shinyApp(ui, server)

预期行为:

  • 当与小部件交互时,会显示最后一个交互的小部件的 ID。

观察到的行为:

  • 无论我与哪个小部件交互,都不会显示小部件 ID。

检查尝试:

  • 正在更新 Shiny 版本。
  • 原始帖子中的其他代码建议 - 没有变化
  • 使用 ....ready(function(){$('input').on('shiny:inputchanged'... 而不仅仅是 .on(' Shiny :inputchanged'.

我是 R 程序员,不是 JS 程序员。具有这两种技能的人可以建议如何使其发挥作用吗?

最佳答案

您需要排除输入,该输入是在 JS 部分中设置的有关要监视的事件的内容,否则您将陷入无限循环。

请查看我的相关回答here :

library(shiny)

ui <- fluidPage(
  tags$head(
    tags$script(
      "$(document).on('shiny:inputchanged', function(event) {
          if (event.name != 'changed') {
            Shiny.setInputValue('changed', event.name);
          }
        });"
    )
  ),
  numericInput("num1", "Numeric", 0),
  textInput("text1", "Text"),
  selectInput("select1", "Select", choices = LETTERS[1:4]),
  selectInput("selectize1", "Selectize", choices = letters[1:4]),
  
  textOutput("textout")
)

server <- function(input, output, session) {
  output$textout <- renderText({
    input$changed
  })
}

shinyApp(ui, server)

Here可以找到相应的文档。

关于javascript - Shiny未检测到shiny :inputchanged event,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75394047/

相关文章:

php - 重力形式 - 获取当前页码

javascript - 动态更改 Angular Bootstrap Datepicker 的语言

javascript - 如何在 Meteor 中对光标处的项目进行分组?

r - 在 R 中,从 df 中采样 n 行,其中某个列具有非 NA 值(有条件地采样)

r - 在 qqplot 和 Shiny 中命名图例

javascript - 使用 JavaScript 在一个特定时区中的 DST 偏移时间

r - ggplot 百分比乘以 100

r - 如何结合R语言制作交互式图表

r - 在shinyapps中与服务器断开连接,但本地正在工作

r - 如何在 Shiny 的应用程序内调用应用程序