R Shiny checkboxGroupInput-выберите все флажки щелчком мыши

у меня есть приложение R Shiny, которое содержит checkboxGroupInput, и я пытаюсь создать кнопку "Выбрать все", используя функцию updateCheckboxGroupInput. Вы можете увидеть полный код ниже, но в основном я определил группы cb следующим образом:

checkboxGroupInput("campaigns","Choose campaign(s):",campaigns_list)

и затем, при нажатии кнопки, вызовите функцию:

updateCheckboxGroupInput(session,"campaigns","Choose campaign(s):",choices=campaigns_list,selected=campaigns_list)

у меня есть указание, что функция запущена, но то, что она делает, на самом деле снимает флажки. Кстати, когда я ставлю выбранный при определении cbGroupInput это сработало, но не на функции.

спасибо!

Это мой сервер.R:

library(shiny)
source('usefulFunctions.R')
shinyServer(function(input, output, session) {

  output$cascading <- renderUI({
    provider_id <- input$provider
    if (provider_id == "") return(NULL)
    campaigns_list <<- t(getCampaigns(provider_id))
    tagList(
      checkboxGroupInput("campaigns","Choose campaign(s):", 
                         choices = campaigns_list, selected = campaigns_list),
      actionLink("selectall","Select All")
      )
  })

  observe({
    if(is.null(input$selectall)) return(NULL)
    if (input$selectall > 0)
    {
      print(campaigns_list)
      updateCheckboxGroupInput(session,"campaigns","Choose campaign(s):",choices=campaigns_list,selected=campaigns_list)
    }
    })


})

2 ответов


Я также добавил параметры выбора и отмены выбора здесь, проверив, делится ли кнопка или ссылка на 2

#rm(list = ls())
library(shiny)
campaigns_list <- letters[1:10]

ui =fluidPage(
  checkboxGroupInput("campaigns","Choose campaign(s):",campaigns_list),
  actionLink("selectall","Select All") 
)
server = function(input, output, session) {

  observe({
    if(input$selectall == 0) return(NULL) 
    else if (input$selectall%%2 == 0)
    {
      updateCheckboxGroupInput(session,"campaigns","Choose campaign(s):",choices=campaigns_list)
    }
    else
    {
      updateCheckboxGroupInput(session,"campaigns","Choose campaign(s):",choices=campaigns_list,selected=campaigns_list)
    }
  })
}
runApp(list(ui = ui, server = server))

если campaigns_list Это список, может быть, потому, что вы указываете список всех ваших вариантов вместо значения полей, которые должны быть выбраны в