目的
- 掲題の件でいい方法が探したが見つからなかったので自力解決
- もし、もっといい方法があったら教えて欲しい
困ってたこと
- 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するためのものを使っただけなので、もっといい方法があると思うが、いったんメモとして残しておく。