Edited at

Shiny Serverで操作結果をURLに渡す方法

More than 1 year has passed since last update.


目的


  • 掲題の件でいい方法が探したが見つからなかったので自力解決

  • もし、もっといい方法があったら教えて欲しい


困ってたこと


  • ShinyServerでReactiveなアプリを書いてみたものの、その結果URLが変わらないため、参考にしてよ〜といったURLをコピペして渡せなかった。

  • この方法結構探したが見つからなかった

  • 引数をURLで渡す方法があるが、その場合UIで渡した値をgetparameterが上書きしてしまうので、違う方法を探していた


やったこと


global.R

## global.R ##に以下追加

enableBookmarking(store = "url")


server.R

## 引数にsession情報追加しつつ、observeですべての操作でbookmark関数動かす

server <- function(input, output, session) {
observe({
# Trigger this observer every time an input changes
session$doBookmark()
})
onBookmarked(function(url) {
updateQueryString(url)
})
}


observerとは?

An observer is like a reactive expression in that it can read reactive values and call reactive expressions, and will automatically re-execute when those dependencies change. But unlike reactive expressions, it doesn't yield a result and can't be used as an input to other reactive expressions. Thus, observers are only useful for their side effects (for example, performing I/O)


参考

あくまでもbookmarkするためのものを使っただけなので、もっといい方法があると思うが、いったんメモとして残しておく。