【发布时间】:2021-12-07 06:49:02
【问题描述】:
这里对 Shiny 来说非常新,我有一个类似下面的模块,我只想要 2 个 SelectizeInput 菜单,每个菜单都有相同的选项。
诀窍是它们必须是互斥的,所以我知道我必须使用 updateSelectizeInput 根据另一个菜单中的选定选项来更新一个菜单中的选定选项。
这应该以这样的方式工作,如果我在一个菜单中选择一个选项,它必须从另一个菜单中的选定选项中删除,反之亦然。
我了解这里的活动部分,但我不确定将它们放置在哪里以及如何最终完成。
这是我目前所拥有的:
mod_saving_side_ui <- function(id){
ns <- NS(id)
tagList(
shinyjs::useShinyjs(),
shinyalert::useShinyalert(),
uiOutput(outputId = ns("positive_markers")),
uiOutput(outputId = ns("negative_markers"))
)
}
mod_saving_side_server <- function(id, r){
moduleServer( id, function(input, output, session){
ns <- session$ns
output$positive_markers <- renderUI({
selectizeInput(inputId = ns("pos_markers"), label = "Positive:",
choices = LETTERS
selected = LETTERS[1],
multiple = TRUE)
})
output$negative_markers <- renderUI({
selectizeInput(inputId = ns("neg_markers"), label = "Negative:",
choices = LETTERS,
selected = LETTERS[2],
multiple = TRUE)
})
# add selected markers to the reactive values
observeEvent(input$pos_markers, {
r$pos_markers <- input$pos_markers
#selected_markers <- ALL EXCEPT pos_markers
#updateSelectizeInput(session, inputId = "neg_markers", selected = selected_markers)
})
observeEvent(input$neg_markers , {
r$neg_markers <- input$neg_markers
#selected_markers <- ALL EXCEPT neg_markers
#updateSelectizeInput(session, inputId = "pos_markers", selected = selected_markers)
})
})
}
不确定这是否是一个独立的 MWE...一个附带问题是如何使用上述内容制作一个...非常感谢!
【问题讨论】:
-
假设
r到mod_saving_side_server的参数是什么?对于 MWE,您似乎不需要shinyjs和shinyalert。您还需要library(shiny)才能成为一个工作示例。
标签: r shiny selectize.js multipleselection selectinput