我使用Shiny创建一个简单的仪表板供用户修改应用设置。他们可以在应用程序中添加或删除元素,还可以在存储库中创建某些类型的新元素供其他人使用。
我使用selectizeInput将所选元素(从数据库中搜索)存储在一个选项卡中,在相邻选项卡中,用户可以选择创建新元素并将其存储到数据库中。
我想要做的是将新创建的元素直接添加到selectizeInput中,但只需使用input $ factor_selector获取值,然后附加到该值并使用附加列表调用updateSelectizeInput不起作用。我不确定selectizeInput的实际对象类型是什么,以及我应该为选择的'输入什么。调用updateSelectizeInput时的变量
这是一个代码示例:
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)
)
)
输入的工作方式就像我想要的那样,我很难找到更新和刷新所选项目的正确方法。