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$ worksoutput$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 itoutput$plot<- renderPlot({
chartSeries(react[dataInput()], theme= chartTheme("white"),
type="line", log.scale=input$log, TA=NULL)
})
