Dash Table multi-filtering

Hello,
Have following code:

import dash_core_components as dcc
import dash_html_components as html
import dash_bootstrap_components as dbc


import pandas as pd

df = pd.read_csv('https://gist.githubusercontent.com/chriddyp/'
    'c78bf172206ce24f77d6363a2d754b59/raw/'
    'c353e8ef842413cae56ae3920b8fd78468aa4cb2/'
    'usa-agricultural-exports-2011.csv')



def generate_table(dataframe, max_rows=10):
    return html.Table(
        # Header
        [html.Tr([html.Th(col) for col in dataframe.columns])] +

        # Body
        [html.Tr([
            html.Td(dataframe.iloc[i][col]) for col in dataframe.columns
        ]) for i in range(min(len(dataframe), max_rows))]
    )


app = dash.Dash()

app.layout = html.Div(children=[
    html.H4(children='Current HLR routing'),

    dcc.Dropdown(id='dropdown', options=[
        {'label': i, 'value': i} for i in df.state.unique()
    ], multi=True, placeholder='Filter by state...'),
    dcc.Dropdown(options=[
        {'label': i, 'value': i} for i in df.corn.unique()
    ], multi=True, placeholder='Filter by corn...'),
    dcc.Dropdown(options=[
        {'label': i, 'value': i} for i in df.wheat.unique()
    ], multi=True, placeholder='Filter by wheat...'),

    html.Div(id='table-container', style={"margin": "20px"})
], style={"margin": "100px"})


@app.callback(
    dash.dependencies.Output('table-container', 'children'),
    [dash.dependencies.Input('dropdown', 'value')])
def display_table(dropdown_value):
    if dropdown_value is None:
        return generate_table(df)

    dff = df[df.state.str.contains('|'.join(dropdown_value))]
    return generate_table(dff)

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

Could you please help with the callback for multi-filtering of the table?
Thank you