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)