在Shiny tutorial,有一個例子:反應性值與反應性表達式有什麼區別?
fib <- function(n) ifelse(n<3, 1, fib(n-1)+fib(n-2))
shinyServer(function(input, output) {
currentFib <- reactive({ fib(as.numeric(input$n)) })
output$nthValue <- renderText({ currentFib() })
output$nthValueInv <- renderText({ 1/currentFib() })
})
我不明白怎麼reactive
緩存值。它是否在內部執行類似return(function() cachedValue)
的操作? 現在我想知道我能否做到這一點?
fib <- function(n) ifelse(n<3, 1, fib(n-1)+fib(n-2))
shinyServer(function(input, output) {
currentFib <- reactiveValues({ fib(as.numeric(input$n)) })
output$nthValue <- renderText({ currentFib })
output$nthValueInv <- renderText({ 1/currentFib })
})