selectizeInput 从下拉选项中的字符串中删除 "an" 个字符
selectizeInput removing "an" characters from strings in dropdown options
我正在构建一个闪亮的应用程序,用户必须 select 个城市才能在地图上显示。我的数据库中有很多城市,所以我使用 selectizeInput 小部件,用户可以在文本框中输入城市到 select.
但是,当我开始在搜索框中输入内容时,出现了一些奇怪的情况,城市选项似乎缺少字符。具体来说,字符“an”似乎把事情搞砸了:“San Antonio”和“San Diego”显示为“S Antonio”和“S Diego”,而“Santa Ana”显示为“Sta Ana”。我添加了“丹吉尔”以查看不在“S”之后的“an”会发生什么,它显示为“Tan”,所以我很困惑。有人知道为什么会这样或如何解决吗?
注意:在您键入某些字符(我又想了一遍,“an”)之前,它们不会在下拉列表中显示此错误。例如,如果您输入“San Diego”或“New York”,您可以 select 这些城市并且不会出现错误,但是如果您输入“San An-”或“Santa An-”,那么事情就开始变得奇怪。
下面的代表:
library(shiny)
# Define UI for application that draws a histogram
ui <- fluidPage(
# Application title
titlePanel("test app"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
HTML("Type 'San Antonio' or 'Santa Ana' to reproduce the error."),
selectizeInput(
inputId = "test_city_3",
label = "Reference City 3",
choices = c("San Antonio","Santa Ana", "Santa Cruz","Chicago",
"New York","San Diego","Tangier"),
options = list(placeholder = "Reference City 3")
)
),
# Show a plot of the generated distribution
mainPanel(
)
)
)
# Define server logic required to draw a histogram
server <- function(input, output) {
}
# Run the application
shinyApp(ui = ui, server = server)
这似乎是 selectize.js
(shiny::selectizeInput()
在幕后使用)中的一个已知但未记录的错误。参见例如this issue 在 GitHub。
每当您在搜索中重复一个词时,该词(或子字符串)就会从列表中的所有选项中删除。这就是为什么搜索“San Antonio”等会删除“an”的原因。更小的例子,你可以搜索“s s”,也会出现同样的错误。
修复:
我找到的唯一修复方法是设置 options = list(highlight = FALSE)
。不幸的是,这将一起删除突出显示,但可能是值得的,因为您的列表中有很多“san* an*”国家。
这是根据您的代码在较小的 repex 中使用的修复:
library(shiny)
ui <- fluidPage(
selectizeInput(
inputId = "test_city_3",
label = "Reference City 3",
choices = c("San Antonio","Santa Ana", "Santa Cruz","Chicago",
"New York","San Diego","Tangier"),
options = list(
placeholder = "Reference City 3",
highlight = FALSE
)
)
)
server <- function(input, output) {}
shinyApp(ui = ui, server = server)
我正在构建一个闪亮的应用程序,用户必须 select 个城市才能在地图上显示。我的数据库中有很多城市,所以我使用 selectizeInput 小部件,用户可以在文本框中输入城市到 select.
但是,当我开始在搜索框中输入内容时,出现了一些奇怪的情况,城市选项似乎缺少字符。具体来说,字符“an”似乎把事情搞砸了:“San Antonio”和“San Diego”显示为“S Antonio”和“S Diego”,而“Santa Ana”显示为“Sta Ana”。我添加了“丹吉尔”以查看不在“S”之后的“an”会发生什么,它显示为“Tan”,所以我很困惑。有人知道为什么会这样或如何解决吗?
注意:在您键入某些字符(我又想了一遍,“an”)之前,它们不会在下拉列表中显示此错误。例如,如果您输入“San Diego”或“New York”,您可以 select 这些城市并且不会出现错误,但是如果您输入“San An-”或“Santa An-”,那么事情就开始变得奇怪。
下面的代表:
library(shiny)
# Define UI for application that draws a histogram
ui <- fluidPage(
# Application title
titlePanel("test app"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
HTML("Type 'San Antonio' or 'Santa Ana' to reproduce the error."),
selectizeInput(
inputId = "test_city_3",
label = "Reference City 3",
choices = c("San Antonio","Santa Ana", "Santa Cruz","Chicago",
"New York","San Diego","Tangier"),
options = list(placeholder = "Reference City 3")
)
),
# Show a plot of the generated distribution
mainPanel(
)
)
)
# Define server logic required to draw a histogram
server <- function(input, output) {
}
# Run the application
shinyApp(ui = ui, server = server)
这似乎是 selectize.js
(shiny::selectizeInput()
在幕后使用)中的一个已知但未记录的错误。参见例如this issue 在 GitHub。
每当您在搜索中重复一个词时,该词(或子字符串)就会从列表中的所有选项中删除。这就是为什么搜索“San Antonio”等会删除“an”的原因。更小的例子,你可以搜索“s s”,也会出现同样的错误。
修复:
我找到的唯一修复方法是设置 options = list(highlight = FALSE)
。不幸的是,这将一起删除突出显示,但可能是值得的,因为您的列表中有很多“san* an*”国家。
这是根据您的代码在较小的 repex 中使用的修复:
library(shiny)
ui <- fluidPage(
selectizeInput(
inputId = "test_city_3",
label = "Reference City 3",
choices = c("San Antonio","Santa Ana", "Santa Cruz","Chicago",
"New York","San Diego","Tangier"),
options = list(
placeholder = "Reference City 3",
highlight = FALSE
)
)
)
server <- function(input, output) {}
shinyApp(ui = ui, server = server)