R ShinyWidgets Встроенный выпадающийКнопка - PullRequest
0 голосов
/ 25 сентября 2018

Функция dropdownButton из shinyWidgets великолепна, потому что я могу использовать ее, чтобы легко создавать Check / Uncheck все опции в checkboxGroupInput, как this .

Однако, скажем, я хочу соединить два (или более) из этих dropdownButton в другой dropdownButton.Я не могу заставить это работать.Вот моя попытка.(Я создаю элементы ui в сценарии server.R, потому что в моем реальном проекте мне нужно, чтобы они работали таким образом.)

library(shiny)
library(shinyWidgets)

ui <- fluidPage(
    titlePanel("Dropsdowns in your Dropdowns"),
    sidebarLayout(sidebarPanel(
        uiOutput("io_c1"),
        uiOutput("io_c2"),
        uiOutput("io_combine")
    ),
    mainPanel())
)

server <- function(input, output, session) {
    ## drop down 1 items ##
    # drop down 1 choices
    c1 <- checkboxGroupInput(
        inputId = "check1",
        label = "pick carb",
        choices = unique(mtcars$carb),
        selected = unique(mtcars$carb)
    )

    # select all / none drop down 1
    sa1 <- actionButton(inputId = "c1_check_all",
                        label = "(un)select all")

    # set up observe on check box 1
    observeEvent(input$c1_check_all, {
        if (is.null(input$check1)) {
            updateCheckboxGroupInput(
                session = session,
                inputId = "check1",
                selected = unique(mtcars$carb)
            )
        } else {
            updateCheckboxGroupInput(
                session = session,
                inputId = "check1",
                selected = ""
            )
        }
    })

    # put all / none button and check box 1 into a dropdownbutton
    output$io_c1 <- renderUI({
        dropdownButton(sa1,
                       c1,
                       circle = FALSE,
                       label = "Carbs",
                       status = "default")
    })

    ## drop down 2 items ##
    # drop down 2 choices
    c2 <- checkboxGroupInput(
        inputId = "check2",
        label = "pick gear",
        choices = unique(mtcars$gear),
        selected = unique(mtcars$gear)
    )

    # select all / none drop down 2
    sa2 <- actionButton(inputId = "c2_check_all",
                        label = "(un)select all")

    # set up observe on check box 2
    observeEvent(input$c2_check_all, {
        if (is.null(input$check2)) {
            updateCheckboxGroupInput(
                session = session,
                inputId = "check2",
                selected = unique(mtcars$gear)
            )
        } else {
            updateCheckboxGroupInput(
                session = session,
                inputId = "check2",
                selected = ""
            )
        }
    })

    # put all / none button and check box 2 into a dropdownbutton
    output$io_c2 <- renderUI({
        dropdownButton(sa2,
                       c2,
                       circle = FALSE,
                       label = "Gears",
                       status = "default")
    })

    ## now try to make this all one thing ##
    d1 <-  dropdownButton(sa1,
                          c1,
                          circle = FALSE,
                          label = "Carbs",
                          status = "default")

    d2 <- dropdownButton(sa2,
                         c2,
                         circle = FALSE,
                         label = "Gears",
                         status = "default")

    output$io_combine <-
        renderUI(dropdownButton(
            d1,
            d2,
            circle = FALSE,
            label = "Drop Downs Here",
            status = "default"
        ))

}

shinyApp(ui = ui, server = server)

Так что я получил эту работу с каждым отдельным dropdownButton s, но когда я пытаюсь собрать результаты в единое целое в третьей части кода, это не работает.dropdownButton создан, и два отдельных dropdownButton находятся там, но они не отвечают вообще.Есть идеи, что я могу упустить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...