Tools to help with 'shiny' reactivity. The 'react' object offers an alternative way to call reactive expressions to better identify them in the server code.
The goal of react is to help with reactivity, instead of calling the
foo reactive expression foo() you can call react$foo similar to
how one calls input$bar for inputs, or alternatively react[foo] or
react[foo()].
The benefit is that it makes it easier to spot calls to reactive expressions in your server code.
You can install the development version of react from GitHub with:
pak::pak("tadascience/react")
Take this from the shiny example:
server <- function(input, output) {
dataInput <- reactive({
getSymbols(input$symb, src = "yahoo",
from = input$dates[1],
to = input$dates[2],
auto.assign = FALSE)
})
output$plot <- renderPlot({
chartSeries(dataInput(), theme = chartTheme("white"),
type = "line", log.scale = input$log, TA = NULL)
})
}
With react you can rewrite the plot output as one of these,
depending on your taste.
# react$ is similar conceptually to how input$ works
output$plot <- renderPlot({
chartSeries(react$dataInput, theme = chartTheme("white"),
type = "line", log.scale = input$log, TA = NULL)
})
# react[]
output$plot <- renderPlot({
chartSeries(react[dataInput], theme = chartTheme("white"),
type = "line", log.scale = input$log, TA = NULL)
})
# react[()] so that you still have the calling a function feel
# and you just sourround it
output$plot <- renderPlot({
chartSeries(react[dataInput()], theme = chartTheme("white"),
type = "line", log.scale = input$log, TA = NULL)
})