r - 根据选定的值更新 url
问题描述
我正在尝试根据下拉列表中的选择来解析 url。现在,当我们127.0.0.1:XXXX/?selected_facility=4
在 url 中时,它工作正常。
但是我们可以在这里做一个小改动吗?每当用户更改下拉列表时,url 本身应该被更改为相应的一次
例如,当用户选择 4 时,url 应变为127.0.0.1:XXXX/?selected_facility=4
类似,5 时,url 应变为127.0.0.1:XXXX/?selected_facility=5
现在,网址没有改变
library(shiny)
facilities <- seq(1:5)
ui <- fluidPage(
selectInput("selected_facility", "Select facility", choices = facilities)
)
server <- function(input, output, session) {
observe({
#Get URL query
query <- parseQueryString(session$clientData$url_search)
#Ignore if the URL query is null
if (!is.null(query[['selected_facility']])) {
#Update the select input
updateSelectInput(session, "selected_facility", selected = query[['selected_facility']], choices = facilities)
}
})
}
shinyApp(ui, server)
解决方案
这可以通过以下方式完成updateQueryString
:
library(shiny)
facilities <- seq(1:5)
ui <- fluidPage(
selectInput("selected_facility", "Select facility", choices = facilities)
)
server <- function(input, output, session) {
observe({
#Get URL query
query <- parseQueryString(session$clientData$url_search)
#Ignore if the URL query is null
if (!is.null(query[['selected_facility']])) {
#Update the select input
updateSelectInput(session, "selected_facility", selected = query[['selected_facility']], choices = facilities)
}
})
observeEvent(input$selected_facility, {
updateQueryString(
queryString = sprintf("?selected_facility=%s", input$selected_facility),
mode = c("replace")
)
})
}
shinyApp(ui, server)
推荐阅读
- python-3.x - 通过 MQTT 将图像作为 numpy 数组发送到 AWS IoT Core
- python - 计算距图像中心的像素距离
- c# - 频繁传送时子对象不跟随父对象
- php - 如何使用 PHP PDO 从数据库中检查 $username 到 UserName
- ruby-on-rails - NoMethodError:未定义的方法“+”用于 nil:NilClass 用于私有方法中的变量
- python - Python 和 SQLite - 如何在 SELECT 和 INSERT 上“转义”字符串?
- javascript - Javascript Async/Await - 无法让它工作
- c# - C#,如何制作一个关键字来完成特定的命令
- php - 将数组数组转换为php中的数组键值
- python - 在 Linux 上安装 ipython 笔记本