r-如何通过URL将多个参数传递给闪亮的应用程序以更新SelectInput



;全局";通过updateSelectInput 传递多个参数(国家/地区(以显示多个绘图的查询

我的项目http://webcovid19.online

问题是参数传递只适用于这样的一个参数http://webcovid19.online/?global=Slovakia,有更多参数如下http://webcovid19.online/?global=Slovakia,Czechia看起来传递参数不起作用,得到了这个错误"美学必须是长度1或与数据(1(相同:x、y、颜色、标签和组";

server <- function(input, output, session) {
session$clientData$url_search
observe({
query <- parseQueryString(session$clientData$url_search)
if (!is.null(query[['global']])) {
updateSelectInput(session, "country_input", selected = query[['global']])
updateNavbarPage(session, "mainNavbarPage", selected="COVID 19 Global Stats")
}
})

UI

selectInput("country_input", "Countries:",
unique(countries$country),
selected = start_countries,
multiple = TRUE),

针对国家的DF

head (countries)
country  confirmed
1      US 1682183074
2   India 1063726855
3  Brazil  875580392

你知道吗?当我进行调试时,我可以看到这两个参数,但如何传递到我的应用程序?看来我必须以某种方式进行解析。

query[['global']]
[1] "Slovakia,Czechia" 
str(query[["global"]])
chr "Slovakia,Czechia"

闪亮的应用程序:如何通过URL传递多个令牌/参数

通过url传递到闪亮应用程序的令牌的标准delimeter是&符号。

闪亮应用程序代码示例:

server <- function(input, output, session) {
observe({
query <- parseQueryString(session$clientData$url_search)
if (!is.null(query[['paramA']])) {
updateTextInput(session, "InputLabel_A", value = query[['paramA']])
}
if (!is.null(query[['paramB']])) {
updateTextInput(session, "InputLabel_A", value = query[['paramB']])
}
})
# ... R code that makes your app produce output ..
}

核心URL示例:http://localhost.com/?paramA=hello&?paramB=世界

参考:parseQueryString文档

尽管您的问题似乎是如何从单个传递的参数中解析字符串标记,不是吗?决定无论如何都包括这个答案,因为这是谷歌上关于如何通过url将多个参数传递到闪亮应用程序的第一个结果,我相信其他人会觉得有用。

最新更新