Как использовать html в переключателях выбора блестящий - PullRequest
0 голосов
/ 08 марта 2020

Я пытаюсь обновить список радиокнопок на стороне сервера с кодом HTML, но у меня ничего не получается.
Я использую этот пример, чтобы вы поняли, что я пытаюсь сделать. Я снова ссылаюсь на то, что это должно быть на стороне сервера, потому что элементы в моем списке будут связаны с другими входными данными, сделанными пользователем.

Может ли кто-нибудь помочь выяснить, как это можно сделать? спасибо

## Only run examples in interactive R sessions
if (interactive()) {

ui <- fluidPage(
radioButtons("rb", "Choose one:",
             choiceNames = list("icon", "html", "text"),
             choiceValues = c(1,2,3)),
 textOutput("txt")
) 


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


a<-HTML("<p style='color:red;'>option2</p>")
list1=as.list(c("option1",a,"option3"))

  updateRadioButtons(session, "rb", choiceNames = list1, choiceValues = c(1,2,3))



output$txt <- renderText({
  paste("You chose", input$rb)
})

}

shinyApp(ui, server)
}

1 Ответ

1 голос
/ 08 марта 2020

В вашем коде есть некоторые проблемы:

choiceValues должен быть вектором атома c, а не списком

ui <- fluidPage(
  radioButtons("rb", "Choose one:",
               choiceNames = list("icon", "html", "text"),
               choiceValues = c(1,2,3)),
  textOutput("txt")
)

, если вы используете updateXXX, вы должны установить аргумент session для функции server:

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

в updateRadioButtons, вам нужно установить choiceNames и choiceValues:

  if(TRUE){  
    list=list(icon("calendar"),
              HTML("<p style='color:red;'>Red Text</p>"),
              "Normal text"
    )
    updateRadioButtons(session, "rb", choiceNames = list, choiceValues = c(1,2,3))
  }

И icon не работает.

...