Spouštění reakcí pomocí observeEvent()
Někdy potřebuješ provést určitou akci jako reakci na událost. Například možná chceš uživateli umožnit stáhnout tabulku jako soubor CSV po kliknutí na tlačítko „Stáhnout". Nebo chceš zobrazit oznámení či modální dialog v reakci na kliknutí.
Funkce observeEvent() ti to umožní. Přijímá dva argumenty:
- Událost, na kterou chceš reagovat.
- Funkci, která se zavolá pokaždé, když tato událost nastane.
V tomto cvičení použiješ observeEvent() k zobrazení modálního dialogu s nápovědou, když uživatel klikne na tlačítko označené „Help". Text nápovědy je už přiřazený do proměnné bmi_help_text.
Toto cvičení je součástí kurzu
Tvorba webových aplikací se Shiny v R
Pokyny k cvičení
- UI:
- Přidej akční tlačítko pojmenované 'show_help' s popiskem "Help". Možná budeš muset posunout stránku dolů nebo sbalit konzoli, aby ses dostal/a k části UI.
- Server:
- Odkomentuj kód
# showModal ... - Zabal
showModal(...)doobserveEvent()tak, aby se text nápovědy zobrazil, když uživatel klikne na tlačítko nápovědy
- Odkomentuj kód
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
ui <- fluidPage(
titlePanel('BMI Calculator'),
sidebarLayout(
sidebarPanel(
textInput('name', 'Enter your name'),
numericInput('height', 'Enter your height in meters', 1.5, 1, 2),
numericInput('weight', 'Enter your weight in Kilograms', 60, 45, 120),
actionButton("show_bmi", "Show BMI")
# CODE BELOW: Add an action button named "show_help"
),
mainPanel(
textOutput("bmi")
)
)
)
server <- function(input, output, session) {
# MODIFY CODE BELOW: Wrap in observeEvent() so the help text
# is displayed when a user clicks on the Help button.
# Display a modal dialog with bmi_help_text
# MODIFY CODE BELOW: Uncomment code
# showModal(modalDialog(bmi_help_text))
rv_bmi <- eventReactive(input$show_bmi, {
input$weight/(input$height^2)
})
output$bmi <- renderText({
bmi <- rv_bmi()
paste("Hi", input$name, ". Your BMI is", round(bmi, 1))
})
}
shinyApp(ui = ui, server = server)