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)