【问题标题】:print() not working within reactive functionprint() 在反应函数中不起作用
【发布时间】:2016-01-14 05:55:18
【问题描述】:

当我构建闪亮应用程序时,我通常使用print 来检查以确保我认为应该发生的事情实际上就是发生的事情。但是,当我运行应用程序时,我遇到了print 不再打印到 R 控制台的问题。这是我尝试过的一个简单示例:

ui <- fluidPage(
  sliderInput("slider", "Slider Range",
          min = 0, max = 5000, value = c(11))
)

server <- function(input, output){
  print("Non-Reactive")  
  new <- reactive({
    print("Reactive")
    print(input$slider)
  })

}

shinyApp(ui, server)

在 R 控制台中,我得到:[1] "Non-Reactive",就是这样。我的滑块没有 [1] "Reactive"[1] 11

我知道它以前可以工作,但我不确定发生了什么变化。如果除了print 之外还有另一种更简单的方法来检查/调试闪亮应用的代码,我也很想知道我的其他选择。

注意:我的 shinyapp 包是 0.13.0 版。我的 RStudio 版本是 0.99.491。 R 目前是 3.2.2。

【问题讨论】:

  • 如果构建对象的代码调用了小部件值,则该对象是响应式的。
  • 在这种情况下, print(input$slider) 是从一个小部件值调用的,对吧?
  • 嗯,做到了。那么,observe() 做了什么来让它最终打印出东西呢?你能想到为什么它以前可以在没有观察的情况下工作,但现在不行吗?感谢您的快速解决方案!
  • 哦。因此,如果我在任何其他类型的闪亮功能(如renderPrint)上有print(input$slider),它会做到吗?也许我以前在验证时以某种方式避免使用print()

标签: r shiny


【解决方案1】:

正如 jenesaisquoi 所提到的,我必须稍后在我的服务器代码中使用 observe(new()) 以观察 reactive() 函数的变化。我必须只是运气不好,在测试事物时从未在reactive() 函数中使用print()

【讨论】:

    猜你喜欢
    • 2021-01-24
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 2016-07-19
    • 2015-10-01
    • 2022-01-16
    • 1970-01-01
    • 2021-09-22
    相关资源
    最近更新 更多