isolate() ile tepkileri durdur
Normalde, bir reaktif değeri okumak bile bir ilişki kurmak için yeterlidir; reaktif değerdeki bir değişiklik, çağıran ifadenin yeniden çalışmasına neden olur. isolate() işlevi, bir ifadenin bir reaktif değeri okumasına, ancak değeri değiştiğinde yeniden çalışmayı tetiklememesine olanak tanır.
Bu egzersizde, reaktif akışı durdurmak için isolate() işlevini kullanacaksın.
Bu egzersiz, kursun bir parçasıdır
R ile Shiny Kullanarak Web Uygulamaları Geliştirme
Egzersiz talimatları
- Sunucu kodunu güncelle; böylece metin çıktısı yalnızca kullanıcı boyu veya kilosunu değiştirdiğinde güncellensin, ADI değiştiğinde güncellenmesin.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
ui <- fluidPage(
titlePanel('BMI Calculator'),
sidebarLayout(
sidebarPanel(
textInput('name', 'Enter your name'),
numericInput('height', 'Enter your height (in m)', 1.5, 1, 2, step = 0.1),
numericInput('weight', 'Enter your weight (in Kg)', 60, 45, 120)
),
mainPanel(
textOutput("bmi")
)
)
)
server <- function(input, output, session) {
rval_bmi <- reactive({
input$weight/(input$height^2)
})
output$bmi <- renderText({
bmi <- rval_bmi()
# MODIFY CODE BELOW:
# Use isolate to stop output from updating when name changes.
paste("Hi", input$name, ". Your BMI is", round(bmi, 1))
})
}
shinyApp(ui = ui, server = server)