gpt4 book ai didi

shiny - R Shiny 的 updateSelectizeInput 标签的自定义 HTML 标签

转载 作者:行者123 更新时间:2023-12-02 20:55:57 24 4
gpt4 key购买 nike

有没有办法将 HTML 标签(例如 h6)用于 updateSelectizeInput(适用于 selectInput,请参阅下面的代码)?在下面的代码中,只需在 updateSelectizeInput [object Object] 中使用 h6("Label") 即可显示为输出。

rm(list = ls())
library(shiny)



ui =fluidPage(
selectizeInput('DropDownSelectize',choices=NULL,label=""),
selectInput('DropDownSelect',choices = c("choice1","choice2","choice3"),
label=h6("Label"))
)

server = function(input, output, session) {

observe({
updateSelectizeInput(session,
'DropDownSelectize',
label = h6("Label"),
choices = c("choice1","choice2","choice3"),
selected = "choice1",
server = TRUE)

})


}
runApp(list(ui = ui, server = server))

谢谢

最佳答案

如果标签始终相同,则不要在 updateSelectizeInput 上为 label 设置值。实际上,您应该只设置您想要更改的参数。

例如,这只是更改选定的值:

updateSelectizeInput(session, 'DropDownSelectize', selected = "choice3")

如果需要更改label的值,但需要使用标签或样式,例如本例中的h6,您可以使用shinyjs仅更改标签的文本。为此,您需要将 id 添加到 h6 标记。请参阅下面的示例,其中第一个观察者内部的标签是使用 shinyjshtml 函数更改的。我还添加了两个按钮来手动更改标签的文本。

library(shiny)
library(shinyjs)

ui =fluidPage(
shinyjs::useShinyjs(), # to initialize shinyjs
selectizeInput('DropDownSelectize',choices=NULL,label=h6("", id = "labelText")),
selectInput('DropDownSelect',choices = c("choice1","choice2","choice3"),
label=h6("Label")),
actionButton("useLabel1", "Use Label 1"),
actionButton("useLabel2", "Use Label 2")
)

server = function(input, output, session) {
observe({
updateSelectizeInput(session,
'DropDownSelectize',
# label = h6("Label"), # no needed
choices = c("choice1","choice2","choice3"),
selected = "choice1",
server = TRUE)
shinyjs::html("labelText", "Label")
})

observeEvent(input$useLabel1, {
shinyjs::html("labelText", "Label 1")
})

observeEvent(input$useLabel2, {
shinyjs::html("labelText", "Label 2")
})

}
runApp(list(ui = ui, server = server))

关于shiny - R Shiny 的 updateSelectizeInput 标签的自定义 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40341804/

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