Skip to content

[BUG] error reporting callback definition errors #791

Closed
@alexcjohnson

Description

From https://community.plot.ly/t/multiple-callback-error/24981

Probably came from removing the MutableMapping mixin #753

This app has bad IDs in the second callback:

import dash
import dash_html_components as html
import dash_core_components as dcc
from dash.dependencies import Input, Output

series = [str(i) for i in range(20)]

all_options = {
    'group_1': series[1:5],
    'group_2': series[6:10],
    'group_3': series[11:-1],
}

app = dash.Dash()

app.layout = html.Div(children=[
    html.P([
        html.Label('Choose a group:'),
        dcc.Dropdown(
            id='groups_dropdown',
            options=[{'label': k, 'value': k} for k in all_options.keys()],
            value='group_1'
        )
    ], style=dict(width='400px')),

    html.P([
        html.Label('Choose a series:'),
        dcc.Dropdown(id='series_dropdown')
    ], style=dict(width='400px')),
])


@app.callback(Output('series_dropdown', 'options'),
              [Input('groups_dropdown', 'value')])
def set_series_options(selected_group):
    return [{'label': i, 'value': i} for i in all_options[selected_group]]


@app.callback(Output('series-dropdown', 'value'),
              [Input('series-dropdown', 'options')])
def set_series_value(available_options):
    return available_options[0]['value']


if __name__ == '__main__':
    app.run_server(debug=True)

But the error is broken:

Traceback (most recent call last):
  File "f.py", line 40, in <module>
    [Input('series-dropdown', 'options')])
  File "/Users/alex/plotly/dash/dash/dash.py", line 1156, in callback
    self._validate_callback(output, inputs, state)
  File "/Users/alex/plotly/dash/dash/dash.py", line 865, in _validate_callback
    list(layout.keys()) + (
AttributeError: 'Div' object has no attribute 'keys'

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions