Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.
This repository was archived by the owner on Aug 29, 2025. It is now read-only.

Props suddenly hidden behind _dashprivate_layout #149

@philip-peterson

Description

@philip-peterson

Hi there,

We have a React component (called Tabs) that contains some Tab child elements. Note that these are not the dash_core_components Tab and Tabs components. So our code looks something like this:

    html.Div(
        children=[
            Tabs(
                id="tab-group",
                currentTabId="shelley",
                children=[
                    Tab(
                        id="shelley",
                        name="Shelley",
                        children=[
                            html.Div("I met a traveler from an antique land"),
                            html.Div("Who said: “Two vast and trunkless legs of stone"),
                        ],
                    ),
                    Tab(
                        id="williams",
                        name="Williams",
                        children=[
                            html.Div("I have eaten"),
                            html.Div("the plums"),
                            html.Div("that were in"),
                            html.Div("the icebox"),
                        ],
                    ),
                ],
            )
        ]
    ),

We are doing some stuff inside Tabs that tries to clone the Tab sub-elements and reassign some properties (mostly assigning an isSelected prop). We were previously using Dash 0.38, and after upgrading, it seems that the properties of the Tab components, as exposed to Tabs via props.children, appear like so:

props(of Tab):
   _dashprivate_layout:
      namespace: "components_package_name_here"
      props:
         type:
            "Tab"

So basically instead of the props actually being right there inside of props, they are now inside of props._dashprivate_layout. Was this change intentional, and if so is there some insight on the reasoning behind it so we can better understand, please?

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions