使用重置按钮重置并清除闪亮的文本输出

时间:2018-06-18 20:42:18

标签: r shiny shinyjs

我正在创建一个计算器,它可以获取多个输入并在点击“计算”后打印计算。我还提供了一个重置​​按钮,可以将输入值成功重置为默认值。

重置按钮还应清除以前打印的输出(基本上我希望它看起来与您第一次打开应用时的效果完全一样)。

以下是计算器的简化且仍在运行的示例。

library(shiny)
library(shinyjs)


ui <- fluidPage(
  useShinyjs(),
  div(id="form",
  sidebarLayout(
    sidebarPanel(
      numericInput("x","X",0),
      numericInput("y","Y",0)
    ),
    mainPanel(
      br(),
      column(width=6,actionButton("calc", "Calculate")),
      column(width=6,actionButton("reset", "Reset")), 
      br(),br(),br(),
      textOutput("sum"))
  )
))


# Define the server logic
server <- function(input, output) {
  output$sum <- renderText({
    req(input$calc)
    isolate(paste("X + Y =", input$x + input$y))
  })

  observeEvent(input$reset, {
    reset("form")
      })
}

# Run the application
shinyApp(ui = ui, server = server)

我已经尝试了一些方法来提供其他看似相似的问题,但我还没有设法让它们发挥作用。我会提供一些我已经做过的例子,但是我已经忘记了这些,我希望我能做出一些明显的,简单的答案。忽视。不过,我对Shiny来说还是比较新的,所以我们也很感激为什么可能的答案有效的细节!

1 个答案:

答案 0 :(得分:1)

根据评论进行编辑。

我认为最简单的观察者是:

# two observers
server <- function(input, output) {

  observeEvent(input$calc, {
    output$sum <- renderText({
      req(input$calc)
      isolate(paste("X + Y =", input$x + input$y))
    })
  })


  observeEvent(input$reset, {
    output$sum <- renderText({

    })
  })
}