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
R ile Shiny Kullanarak Web Uygulamaları Geliştirme
kursunun bir parçasıdırEgzersiz 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ı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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)