【问题标题】:Shiny Dashboard actionbutton闪亮的仪表板操作按钮
【发布时间】:2015-12-12 09:45:24
【问题描述】:

我有一个带有反应操作按钮的闪亮仪表板,但该按钮不会更新仪表板。

我使用 ui.R. 的源将 tabItems 拆分为它们自己的文件和引用。

其中的 tabItem 仅包含以下代码。

  actionButton("go", "Go"),
  numericInput("n", "n", 50),
  plotOutput("plot")

server.R 文件也被拆分出来,并使用源代码引用每个文件。 相关文件包含

    randomVals <- eventReactive(input$go, {
      runif(input$n)
    })

    output$plot <- renderPlot({
      hist(randomVals())
    })

在 ShinyDahsboard 中单击操作按钮不会执行任何操作,但如果我将此代码作为一个闪亮的应用程序单独运行,它可以正常工作。

【问题讨论】:

  • 我添加了一个提交按钮,如果我单击操作按钮,然后单击提交按钮,情节就会更新。与没有闪亮的仪表板不同,go 按钮只会更新情节。

标签: r shiny shinydashboard


【解决方案1】:

你应该isolate你的按钮,像这样:

编辑:根据@tospig

rm(list = ls())
library(shiny)

shinyApp(
  ui=shinyUI(basicPage(
    actionButton("go", "Go"),
    numericInput("n", "n", 50),
    plotOutput("plot")
  )),
  server=shinyServer(function(input, output, session){

    randomVals <- eventReactive(input$go, {
      runif(input$n)
    })

    output$plot <- renderPlot({
      hist(randomVals())
    })
  })
)

【讨论】:

  • 来自using action buttons - “就像observeEvent()eventReactive() 将第二个参数中的代码块与isolate() 隔离开来” - 这意味着您不需要isolate(),不是吗?
  • @tospig 你是对的,不需要这样做。我编辑了我的答案
最近更新 更多