eventReactive() ile tepkileri geciktirme
Shiny'nin tepkisel programlama yapısı, girdi değerlerindeki herhangi bir değişikliğin buna bağlı çıktıları otomatik olarak güncelleyecek şekilde tasarlanmıştır. Bazı durumlarda, güncellemeyi tetikleyen olayı özellikle kontrol etmek isteyebiliriz.
eventReactive() fonksiyonu, yalnızca belirli bir olaya yanıt olarak güncellenen tepkisel bir değer hesaplamak için kullanılır.
rval_x <- eventReactive(input$event, {
# hesaplamalar
})
Bu egzersiz
R ile Shiny Kullanarak Web Uygulamaları Geliştirme
kursunun bir parçasıdırEgzersiz talimatları
- Kullanıcı düğmeye tıklayana kadar BMI hesaplamasının çalışmasını geciktirmek için
eventReactive()kullan.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
ui <- fluidPage(
titlePanel('BMI Calculator'),
sidebarLayout(
sidebarPanel(
textInput('name', 'Enter your name'),
numericInput('height', 'Enter height (in m)', 1.5, 1, 2, step = 0.1),
numericInput('weight', 'Enter weight (in Kg)', 60, 45, 120),
actionButton("show_bmi", "Show BMI")
),
mainPanel(
textOutput("bmi")
)
)
)
server <- function(input, output, session) {
# MODIFY CODE BELOW: Use eventReactive to delay the execution of the
# calculation until the user clicks on the show_bmi button (Show BMI)
rval_bmi <- reactive({
input$weight/(input$height^2)
})
output$bmi <- renderText({
bmi <- rval_bmi()
paste("Hi", input$name, ". Your BMI is", round(bmi, 1))
})
}
shinyApp(ui = ui, server = server)