MyNixOS website logo
Description

Reactivity Helper for 'shiny'.

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.

react

R-CMD-check

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.

Installation

You can install the development version of react from GitHub with:

pak::pak("tadascience/react")

Examples

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)
  })
  
Metadata

Version

2024.1.0

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows