ÎncepețiÎncepe gratuit

Oprește reacțiile cu isolate()

În mod normal, simpla citire a unei valori reactive este suficientă pentru a stabili o relație: orice modificare a valorii reactive va determina re-executarea expresiei apelante. Funcția isolate() permite unei expresii să citească o valoare reactivă fără a declanșa re-executarea atunci când valoarea respectivă se schimbă.

În acest exercițiu, vei folosi funcția isolate() pentru a opri fluxul reactiv.

Acest exercițiu face parte din cursul

Crearea aplicațiilor web cu Shiny în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Actualizează codul serverului astfel încât textul de ieșire să se actualizeze doar când utilizatorul modifică înălțimea sau greutatea, și NU numele.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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)
Editează și rulează codul