为什么actionButton的类会丢失闪亮的绑定输入

时间:2016-09-30 03:15:22

标签: r shiny

我有一个包含许多actionButtons的项目。有时它们通常出现在屏幕上,但它们不起作用。

当我使用Chrome的开发者工具检查发生了什么时,按钮上的类包括“闪亮绑定输入”,而不起作用的按钮不包括它们作为其类的一部分。

此类不是actionButton代码的一部分:

actionButton(inputId="A", label="OK")
# <button id="A" type="button" class="btn btn-default action-button">OK</button>

所以Shiny正在添加它。为了帮助调试这一点,了解为什么按钮会正常显示在屏幕上但没有将“闪亮绑定输入”添加到其类中将会很有帮助。我怀疑其中一个原因是重复的inputIds,但这不是我今天的错误。

---- ----编辑

如果这是多页代码项目中的一段代码,则可重现的示例很难。但是我发现了我的错误,毕竟它是重复的ID - 但在这种情况下,重复项是两个与非工作按钮无关的输出ID。他们后来处于相同的代码块中。

因此,至少有一个解决此问题的方法是:如果您的按钮不起作用,您可能在正在呈现的代码块中的某处有重复的输入或输出ID。

----编辑2 ----

现在我知道错误是什么,我可以提供一个例子。请注意,此处代码中的两个textOutput具有相同的ID。当您复制/粘贴并忘记更新ID时会发生这种情况。原样,此代码中的按钮不起作用。但修复了第二个textOutput中的id,一切都很好。另请注意,缺少任何类型的错误消息。

ui <- uiOutput("test_page")

server <-function(input, output, session) {
   output$test_page <- renderUI(tagList(
      actionButton("button", "OK"),
      textOutput("test_output1"),
      textOutput("test_output1")
   ))

   observeEvent(input$button, {
      print("button pressed")
      output$test_output1 = renderText("button pressed")
      output$test_output2 = renderText(input$button)
   })
}

shinyApp(ui = ui, server = server)

0 个答案:

没有答案