'how to resolve this Duplicate callback outputs error in Dash ploty

In the callback for output(s): page-content.children Output 0 (page-content.children) is already in use. Any given output can only have one callback that sets it. To resolve this situation, try combining these into one callback function, distinguishing the trigger by using dash.callback_context if necessary.

I am getting the above error when I run the Dash app can anyone help me out with this.

This my layout part

   html.Div([
        dbc.Row(
            [
                dbc.Col(dbc.NavbarBrand(dcc.Link(
                    html.Button(children='HOME',
                                style={
                                    'marginLeft': '100px',
                                    'marginRight': 'auto',
                                    'display': 'inline-block',
                                    'align': 'center', 'color': 'white'}, ),

                    href='/', refresh=True))),
                dbc.Col(dbc.NavbarBrand(dcc.Link(
                    html.Button(children='OVERVIEW',
                                style={'margin-left': '100px',
                                       'margin-right': 'auto', 'color': 'white', 'align': 'center'
                                       }),
                    href='/apps/overview', refresh=True))),
                dbc.Col(dbc.NavbarBrand(dcc.Link(
                    html.Button(children='GRAPH',
                                style={'marginLeft': '100px',
                                       'marginRight': 'auto', 'color': 'white', 'align': 'center'
                                       }),
                    href='/apps/graph_page', refresh=True))),
                dbc.Col(dbc.NavbarBrand(dcc.Link(
                    html.Button(children='CONSOLE',
                                style={'marginLeft': '100px',
                                       'marginRight': 'auto', 'color': 'white', 'align': 'center'
                                       }),
                    href='/log_stream', refresh=True))),
            ],
            style={
                'height': 'auto',
                'width': 'auto',
                'background-color': '#101820',
                'align-items': 'center',
                'diplay': 'flex',
            },
            align="center",
            no_gutters=True,
        ),
        dcc.Location(id='url', refresh=False),
        html.Div(id='page-content', children=[])
    ]),
    html.Div([
                dcc.Dropdown(
                    id='demo-dropdown',
                    options=[
                        {'label': 'Dummy', 'value': 0},
                        {'label': 'CAN', 'value': 1},
                    ],
                    placeholder="Select a Mode",
                    searchable=False
                ),
                html.Div(id='dd-output-container')
            ])
])

These are my callbacks

@app.callback(
    Output('dd-output-container', 'children'),
    Input('demo-dropdown', 'value'))
def update_output(value):
    return 'You have selected "{}"'.format(value)


@app.callback(Output(component_id='page-content', component_property='children'),
              (Input(component_id='url', component_property='pathname')))
def display_page(pathname):
    if pathname == '/apps/graph_page':
        return graph_page.layout
    elif pathname == '/apps/overview':
        return overview.layout


Thank you in advance.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source