Mulai sekarangMulai gratis

Hentikan reaksi dengan isolate()

Biasanya, tindakan sederhana membaca sebuah nilai reaktif sudah cukup untuk membentuk sebuah hubungan, di mana perubahan pada nilai reaktif akan menyebabkan ekspresi pemanggil dijalankan ulang. Fungsi isolate() memungkinkan sebuah ekspresi membaca nilai reaktif tanpa memicu eksekusi ulang ketika nilainya berubah.

Dalam latihan ini, Anda akan menggunakan fungsi isolate() untuk menghentikan aliran reaktif.

Latihan ini merupakan bagian dari kursus

Membangun Aplikasi Web dengan Shiny di R

Lihat Kursus

Instruksi latihan

  • Perbarui kode server sehingga keluaran teks hanya diperbarui ketika pengguna mengubah tinggi atau berat, BUKAN nama.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

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)
Edit dan Jalankan Kode