Affina la reattività

Casi di studio: creare applicazioni web con Shiny in R

Dean Attali

Shiny Consultant

Ripasso reattività

  • reactive() e input$ sono reattivi
  • Il codice che dipende da variabili reattive si riesegue quando le dipendenze cambiano
  • Accedere a un valore reattivo lo rende una dipendenza
x <- reactive({
    y() * input$num1 * input$num2
})
Casi di studio: creare applicazioni web con Shiny in R

Isolate

  • Usa isolate() per non creare dipendenze reattive
  • Se un valore reattivo dentro isolate() cambia, non succede nulla
x <- reactive({
    y() * isolate({ input$num1 }) * input$num2
})
x <- reactive({
    y() * isolate({ input$num1 * input$num2 })
})
Casi di studio: creare applicazioni web con Shiny in R

Isola tutto

  • A volte vuoi isolare tutti i reattivi

    x <- reactive({
        isolate({
            y() * input$num1 * input$num2
        })
    })
    
  • Serve un modo per rieseguire x su richiesta

Casi di studio: creare applicazioni web con Shiny in R

Pulsanti di azione

actionButton(inputId, label, ...)

Pulsanti di azione

  • Un'unica interazione: il clic
  • Il valore è il numero di clic
# Dopo due clic sul pulsante
str(input$button)
int 2
Casi di studio: creare applicazioni web con Shiny in R

Pulsanti come trigger di reattività

  • Leggere il valore del pulsante nel server attiva la reattività

  • Aggiungi il pulsante alla UI

    actionButton(inputId = "calculate_x", label = "Calculate x!")
    
  • Accedi al pulsante per creare la dipendenza

    x <- reactive({
        input$calculate_x
    
        isolate({
            y() * input$num1 * input$num2
        })
    })
    
Casi di studio: creare applicazioni web con Shiny in R

Passiamo alla pratica!

Casi di studio: creare applicazioni web con Shiny in R

Preparing Video For Download...