Improving on All-in-One (AIO) components

I see, that’s a good point. For my use a sufficient improvement would be to allow just new clientside callbacks (so the servers falling out of sync would not matter), but that’s probably not helpful enough for the majority of Dash users. Still, it would be great if AIO components had some more flexibility.

For me one awkward thing with the current pattern-matching callback implementation (also mentioned here: Can you use AIO components in an AIO component?) is using an AIO inside another AIO. A way to accomplish this could be to have the aio_id of the inner AIO be the outer AIO’s full ID, and being able to MATCH on values inside these nested dictionaries. However nested dictionaries as component ids are not supported at the moment.

One doable alternative is to have the inner AIO use the same aio_id as the outer AIO’s aio_id, but that pollutes the namespace. Another alternative is to store the ID of the inner component in a Store inside the outer component, and then manually check in a callback if the ID of the subcomponent is the right one. This approach I think has no theoretical limitations, but it’s a bit awkward to use.

1 Like