gpt4 book ai didi

javascript - 在 shiny 中,是否可以根据客户端 Web 浏览器输入更新输入选择?

转载 作者:行者123 更新时间:2023-11-30 00:09:50 25 4
gpt4 key购买 nike

我想设计一个应用程序,它也可以选择从客户端网络浏览器获取输入。所以如果我的 URL 是 www.something.com?text=myValue 我知道我可以用

存储 myValue
query <- parseQueryString(session$clientData$url_search) 
if (!is.null(query[['text']])) {
query_text <<- query[['text']]
}

这个简单的应用程序从 selectizeInput 中获取值并将其呈现在 textOutput 中。

ui <- shinyUI(fluidPage(

fluidRow(column(6, selectizeInput("in1",
label = NULL,
choices = c("alpha",
"beta",
"gamma"),
selected = "beta")),
column(6, textOutput('out1')))


))

我仍然想更新我的 selectizeInput 的选择 if 从客户端 Web 浏览器传递任何值。

所以我在服务器端这样做

server <- shinyServer(function(input, output, session) {

query_text <- character()

observe({
query <- parseQueryString(session$clientData$url_search)
if (!is.null(query[['text']])) {
query_text <<- query[['text']]
updateSelectizeInput('in1',
label = NULL,
choices = c("alpha","beta", "gamma"),
selected = query_text,
server = TRUE)
}
})

output$out1 <- renderText({
input$in1
})

})

如果我启动我的应用程序

shinyApp(ui = ui, server = server)

我没有收到任何错误,我可以通过从 selectizeInput 中手动选择一个值来修改 textOutput。但是当我尝试通过我的浏览器传递一个值,从而触发我的 if 条件时,我得到这个错误

Warning: Error in $: $ operator is invalid for atomic vectors
Stack trace (innermost first):
56: dropNulls
55: updateSelectizeInput
54: observerFunc [/Users/francesco/Desktop/Tests/testy/app.R#35]
1: runApp
ERROR: [on_request_read] connection reset by peer

最佳答案

除了以下事实之外,您所做的只是工作...... updateSelectizeInput 的第一个参数是 session 对象,而不是元素 id。请参阅 ?updateSelectizeInput。所以,只需添加它:

updateSelectizeInput(session, 'in1',
label = NULL,
choices = c("alpha","beta", "gamma"),
selected = query_text,
server = TRUE)

它会起作用。

关于javascript - 在 shiny 中,是否可以根据客户端 Web 浏览器输入更新输入选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36976186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com