You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shiny中selectizeInput选择框显示undefined问题的解决方法

解决SelectizeInput选中后显示“undefined”的问题

出现“undefined”的核心原因是:你只给Selectize配置了下拉选项(option)的渲染函数,但未定义选中项(item)的渲染逻辑,组件不知道选中后该展示什么内容,因此显示undefined。

只需在render配置里同时添加item函数,和option的渲染逻辑保持一致即可解决问题,修改后的完整代码如下:

library(shiny)

seldata <- data.frame("value" = c("NT", "S", "H", "D", "C"),
                      "name" = c("NT", "♠", "♥", "♦", "♣"),
                      "color" = c("#00F", "#000", "#F00", "#F00", "#000"))

ui <- fluidPage(
  selectizeInput(inputId = "main_color", label = NULL, choices = NULL)
)

server <- function(input, output, session) {
  updateSelectizeInput(session, inputId = "main_color", choices = seldata, server = TRUE,
                       options = list(render = I(
                         "{
                          item: function(item, escape) {
                            return '<div><span style=\"color:' + escape(item.color) + '\">' + escape(item.name) + '</span></div>';
                          },
                          option: function(item, escape) {
                            return '<div><span style=\"color:' + escape(item.color) + '\">' + escape(item.name) + '</span></div>';
                         }}")))
}

shinyApp(ui, server)

关键修改说明

  • 在render对象中新增item函数,逻辑和option完全一致,根据item.color设置字体颜色,渲染item.name的内容
  • 修正了原代码中style属性的引号拼接错误(原代码多余的\"\"会导致样式失效)

内容的提问来源于stack exchange,提问作者Richard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 21:47:28