r-闪亮的选择input:单击删除初始选择的值



当用户单击窗口小部件时,我想从selectizeInput中删除CC_2的初始值(selected=)。

这是一个示例代码:

library(shiny)
library(dplyr)
ui= fluidPage(
  sidebarLayout(
    sidebarPanel(
      selectizeInput(inputId= "cyl", label= "cyl", 
                     choices= NULL, 
                     selected= sort(unique(mtcars$cyl))[1],
                     multiple=T)
    ),
    mainPanel(
      tableOutput("tab")
    )
  )
)
server= function(input, output,session) {
  updateSelectizeInput(session = session,inputId ="cyl",choices=sort(unique(mtcars$cyl)),selected=sort(unique(mtcars$cyl))[1], server = TRUE)
  df_filtered= reactive({
    mtcars %>%
    {if (is.null(input$cyl)) . else filter(., cyl %in% input$cyl)}
  })
  output$tab= renderTable(df_filtered())
}
shinyApp(ui, server)

在示例代码的基础上只有一些解释:

selectizeInput "cyl"中的初始选择值是4。当用户按此窗口小部件上的用户时,我希望删除值4 ,并清除selected选项。有任何想法吗?

*我在server中使用了 updateSelectizeInput

当用户单击"选择"字段时,您可以使用shinyjs::onclick调用updateSelectizeInput,例如:

library(shiny)
library(dplyr)
library(shinyjs)
ui= fluidPage(
  useShinyjs(),
  sidebarLayout(
    sidebarPanel(
      selectizeInput(inputId= "cyl", label= "cyl", 
                     choices= NULL, 
                     selected= sort(unique(mtcars$cyl))[1],
                     multiple=T)
    ),
    mainPanel(
      tableOutput("tab")
    )
  )
)
server= function(input, output,session) {
  updateSelectizeInput(session = session,inputId ="cyl",choices=sort(unique(mtcars$cyl)),selected=sort(unique(mtcars$cyl))[1], server = TRUE)
  df_filtered= reactive({
    mtcars %>%
    {if (is.null(input$cyl)) . else filter(., cyl %in% input$cyl)}
  })
  output$tab= renderTable(df_filtered())
  onclick("cyl", {
    updateSelectizeInput(session, "cyl", selected = "")
  })
}
shinyApp(ui, server)

相关内容

  • 没有找到相关文章

最新更新