Skip to content

Updating choices does not preserve selected values in input_checkbox_group()Β #1752

@schoulten

Description

@schoulten

I've noticed some unusual behavior in input_checkbox_group():

When I define a reactive effect to update the checkbox choices, the choices are updated in the UI as expected, but the new pre-selected choices are not applied.

Everything works fine if I don't include the reactive effect code. Am I missing something?

Reproducible code:

from shiny import App, ui, reactive

options = {
    "opt1": [5, 10, 15, 30, 60],
    "opt2": [5, 10, 20]
}

app_ui = ui.page_navbar(
    ui.nav_panel(
        "πŸ“Š",        
        ui.layout_sidebar(
            ui.sidebar(
                ui.input_radio_buttons(
                    id = "aaa",
                    label = ui.strong("Label aaa:"),
                    choices = {"opt1": "Option 1", "opt2": "Option 2"},
                    selected = "opt1",
                    width = "100%"
                ),
                ui.input_checkbox_group(
                    id = "bbb",
                    label = ui.strong("Label bbb"),
                    choices = options["opt1"],
                    selected = options["opt1"],
                    inline = True,
                    width = "100%"
                )
            ),
            "Content"
        )
    ),
    title = ui.strong("Title"),
    fillable = True
)

def server(input, output, session):
    @reactive.effect
    def _():
        choice = input.aaa()
        ui.update_checkbox_group(
            id = "bbb", 
            choices = options[choice],
            selected = options[choice]
            )

app = App(app_ui, server)

Shinylive app demo:

https://shinylive.io/py/editor/#code=NobwRAdghgtgpmAXGKAHVA6VBPMAaMAYwHsIAXOcpMAMwCdiYACAZwAsBLCbJjmVYnTJMAgujxMArhwl04UQmQ4A3OAB0IG4qiWkWTALxMQGpmaZqw2sgEZLiJsACsEmwAZXLpgGYPTAGxuALp4puaW1gBM9o5e7hKRwRoAvhoaaKgA+tKGUhxYUADmcJnQygBGUHQAFGFm0hhlmahQEHAANrUQ5j0WYIC8G4BTO5YSvWZ1vQ3tUNjEkmSZLBwAJnCVNRNj9flLq+tdW4d5GFyo85l0UMscxJnl82R6B0cvK7mWUJ8jmy+90+UdXINFhkBgQQq1MAAGSgAPaTE+UEQlgAlKFur9DoQ2MQOIQ4PojCYrDo7Eg+gB5HQ3bpkiQRHTRcmWKm6bpM5LozGHFgdOCKODLd4k2zfDHc3oAdxWZDYwvcbgApJYfi80aqjg1TudsfyANblYgAD0yhQYklQzwlPTeRks5QdYutf1hgKMwNBpAhlhhcKYDvKqK5zvM2Nx+MJTGsNJYwAZorAIQ1mN57X5FCFRmjejjIrJSfFIa47S4cFyABU6JI4MGQ0xpctZfK3EqVYXMSjk+Z1e2tpYAMKkCjkNuHTuFns9JRkNNAnae8GQ8scGfqMCT8w0Djtf6zoyV6saccaVY0VhwOiqGrasgSOZkM6388sJakFHIwsAATkCiUqgwcA0DQ6YTKeTCZNU74amGeJlkYN4YIikEag0FrLFAFCZLqhAGsaprmpaXZmLafQBiMFi9mMMERrk2YQLG1FwAWKZ8gKmZRtSOaMUERFMMe0DoLkYiWhk2QyOel4XiiYDJEEQA

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions