我正在创建一个计算器,它可以获取多个输入并在点击“计算”后打印计算。我还提供了一个重置按钮,可以将输入值成功重置为默认值。
重置按钮还应清除以前打印的输出(基本上我希望它看起来与您第一次打开应用时的效果完全一样)。
以下是计算器的简化且仍在运行的示例。
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来说还是比较新的,所以我们也很感激为什么可能的答案有效的细节!
答案 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({
})
})
}