我有一个闪亮的应用程序,它使用多个 inputSelection 小部件,用于根据用户输入更新绘图。
selectInput("selectedSites", "Select Site(s) :",
sensor_locations$description, multiple = TRUE,
selected = sensor_locations$description)
我现在还希望允许用户通过单击传单地图上放置的标记来选择站点(通过 inputSelection 小部件允许的选择)。
我已按照以下方式完成此操作:通过观察标记上的点击并更新 inputSelection 框。
observeEvent(input$sitemap_marker_click, {
click <- input$sitemap_marker_click
print(click)
print(click$id)
updateSelectInput(session, "selectedSites",
selected = click$id)
})
这工作得很好,只是它只适合单个输入。 inputSelect 小部件上的先前选择将被删除,并由标记单击所代表的站点进行更新。
但是我想添加到现有的选择中而不是替换它。
通过包含先前选择的值的组合并单击标记值,设法部分解决了该问题。
observeEvent(input$sitemap_marker_click, {
click <- input$sitemap_marker_click
updateSelectInput(session, "selectedSites",
selected = c(input$selectedSites, click$id))
})
但是,如果选定的标记值已经存在,我还想在单击它时将其从列表中删除。