У меня странная проблема, показанная в коде ниже. Я создаю фрейм данных со столбцами меток и значений и обновляю его selectizeInput на стороне сервера. Сервер работает так, что число (скажем, десятки) записей доступно для поиска, но большинство из моих 9000 записей не могут быть найдены поиском. Если я попытаюсь установить server = F, то вместо значений сами метки появятся в результате поиска. Поведение server = F полностью нарушено, а server = T действует так, как если бы кэшировалась только небольшая часть элементов, а остальные игнорируются. Есть мысли?
PS Фрейм данных был построен с помощью stringsAsFactors = F
PPS Проблема, похоже, заключается в том, что мои метки имеют одинаковые префиксы - только 9 уникальных префиксов для 9000 меток, когда только первые 5 символы используются для поиска. Тем не менее, я не вижу, как сказать selectize использовать более 5 символов (который, кажется, является # используется на основе того, какие строки и не найдены).
#
# This is a Shiny web application. You can run the application by clicking
# the 'Run App' button above.
#
# Find out more about building applications with Shiny here:
#
# http://shiny.rstudio.com/
#
library(shiny)
library(stringi)
library(shinydashboard)
library(networkD3)
library(tidyverse)
MyMap = read.csv('MyMap.csv', row.names = 1, stringsAsFactors = F)
colnames(MyMap) = c('label', 'value')
# Define UI for application that draws a histogram
ui <- dashboardPage(
# Application title
dashboardHeader(title="Example Search App"),
# Sidebar with a slider input for number of bins
dashboardSidebar(
disable=TRUE
),
dashboardBody(
fluidRow(
column(12,
selectizeInput(
inputId = 'Selector', label = 'What happened to item...', choices = NULL,
selected=NULL, options = list(maxOptions = 5)
),
verbatimTextOutput('ex_out'),
)
)
)
)
# Define server logic required to draw a histogram
server <- function(input, output, session) {
updateSelectizeInput(session, 'Selector', choices = MyMap, server = TRUE, selected=NULL)
##updateSelectizeInput(session, 'Selector', choices = MyMap, server = FALSE, selected=NULL)
output$ex_out <- renderPrint({
input[['Selector']]
})
}
# Run the application
shinyApp(ui = ui, server = server)