如何在 R 中推送重置时清除"isolate"变量 闪亮

  • 本文关键字:清除 isolate 闪亮 变量 shiny
  • 更新时间 :
  • 英文 :


我在StackOverflow上看到了以下代码。 当您在 X 和 Y 中输入值时,将计算总和,并显示消息"X + Y = "。 但是,当您重置时,"X + Y = "消息仍然出现在前面的示例中。 请问我怎样才能清除该消息?

这是代码:

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)

请测试以下内容:

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) {
values <- reactiveValues()

output$sum <- renderText({
req(values$calc_text)
})
observeEvent(input$calc, {
values$calc_text <- paste("X + Y =", input$x + input$y)
})
observeEvent(input$reset, {
reset("form")
values$calc_text <- ''
})
}
# Run the application
shinyApp(ui = ui, server = server)

我不确定你为什么需要isolate()所以我把它省略了,但你可以把它重新添加进去。

最新更新