eventReactive

eventReactives 与被动类似,它们构造如下:

eventReactive( event {
code to run
})

eventReactives 不依赖于它们体内的所有反应式表达式( 上面代码片段中的 运行代码)。相反,它们仅依赖于事件部分中指定的表达式。

在下面的示例中,我们添加了一个提交按钮,并创建了一个 eventReactive。每当输入$ user_text 发生更改时,eventReactive 都不会失效,因为 eventReactive 仅依赖于 actionButton 输入$ submit。每当按下该按钮时,text_reactive 和随后输出的$ text 都将失效,并将根据更新的输入$ user_text 重新计算。

library(shiny)

ui <- fluidPage(
  headerPanel("Example eventReactive"),
  
  mainPanel(
    
    # input field
    textInput("user_text", label = "Enter some text:", placeholder = "Please enter some text."),

    # submit button
    actionButton("submit", label = "Submit"),
    
    # display text output
    textOutput("text"))
)

server <- function(input, output) {
  
  # reactive expression
  text_reactive <- eventReactive( input$submit, {
    input$user_text
  })
  
  # text output
  output$text <- renderText({
    text_reactive()
  })
}

shinyApp(ui = ui, server = server)