我正在使用Shiny为用户创建一个简单的仪表板来修改应用程序设置 . 他们可以在应用程序中添加或删除元素,还可以在存储库中创建某些类型的新元素供其他人使用 .

我正在使用selectizeInput将所选元素(从数据库中搜索)存储在一个选项卡中,并且在相邻选项卡中,用户可以选择创建新元素并将其存储到数据库中 .

我想要做的是将新创建的元素直接添加到selectizeInput中,但只需使用input $ factor_selector获取值,然后附加到它并且使用附加列表调用updateSelectizeInput不起作用 . 我不确定selectizeInput的实际对象类型是什么,以及在调用updateSelectizeInput时我应该为'selected'变量输入什么

这是一个代码示例:

values = input$factor_selector
values[[length(values)+1]] <- js["key"]
updateSelectizeInput(session, "factor_selector", selected=values)

更新是否也设置了其他参数,例如选择还是选择?我也不确定selectizeInput如何处理项目的名称和键,因为输入只返回键,但我假设在设置新值时它也应该有一个键 .

以下是生成输入的代码:

selectizeInput('factor_selector', 'Select factor(s)', multiple=TRUE, choices='',
   options = list(
     valueField = 'key',
     labelField = 'name',
     searchField = 'name',
     options = list(),
     create = FALSE,
     maxItems = 20,
     render = I("{
      option: function(item, escape) {removed this for readability}
  }"),
  score = I("function(search) {removed this for readability}"),
  load = I("function(query, callback) {removed this for readability)
    )
  )

输入工作就像我想要的那样,我只是找不到更新和刷新所选项目的正确方法 .