如何防止闪亮的代码运行两次?

问题描述 投票:0回答:1

我有一个

shiny
应用程序,其中两个
inputs
相互依赖,我可以在
print("Running")
中看到,当我将“A”更改为
+1
时,代码会执行两次。我确实理解为什么会发生这种情况,首先我更新
A
并运行代码,然后更新
B
并再次运行代码。是否可以只运行一次?

library(shiny)

ui <- fluidPage(
  numericInput("a", "A", 0, step = 1),
  numericInput("b", "B", 1, step = 1),
  textOutput("sum")
)

server <- function(input, output, session) {
  
  observeEvent(input$a, {
    
    updateNumericInput(session = session, "b", value = input$a + 1)
    
    
  })
  
  sum_a_b <- reactive({
    print("Running")
    input$a + input$b
    
  })
  
  output$sum <- renderText(sum_a_b())
  
}

shinyApp(ui, server)
r shiny
1个回答
0
投票

是的,使用:

isolate(input$a) + input$b

© www.soinside.com 2019 - 2024. All rights reserved.