尽管存在默认值,但初始输入状态值设置为无

问题描述 投票:0回答:0

在下面的代码中,当回调在应用程序的初始阶段被触发时,

State({'type': 'my-input', 'index': ALL}, 'value')
的值是无,尽管我已将它们设置为
initial value
。您也可以在屏幕截图中看到这一点。

如果我点击

Submit
按钮,它们是可见的。

如何在没有用户交互的情况下让它们从一开始就可见?这个想法是用这个数据来展示一个数字。这意味着当用户打开页面时,将“自动”显示一个图形。

from dash import Dash, html, dcc, Input, Output, State, Patch, ctx, ALL

app = Dash(__name__, title="Dash App")

app.layout = html.Div([
    html.Button('Add Input', id='add-input'),
    html.Div(id='inputs-container'),
    html.Button('Submit Input', id='submit-input'),
    html.Div(id='output')
])


@app.callback(Output('inputs-container', 'children'), State('inputs-container', 'children'),
              Input('add-input', 'n_clicks'))
def add_input(children, n_clicks):
    patched_list = Patch()
    if n_clicks is None:
        patched_list.append(dcc.Input(id={'type': 'my-input', 'index': 0}, value='initial value'))
        patched_list.append(dcc.Input(id={'type': 'my-input', 'index': 1}, value='initial value'))
    else:
        patched_list.append(dcc.Input(id={'type': 'my-input', 'index': n_clicks + 1}, value='initial value'))
    return patched_list


@app.callback(Output('output', 'children'), State('inputs-container', 'children'),
              State({'type': 'my-input', 'index': ALL}, 'value'), Input('submit-input', 'n_clicks'))
def submit_input(children, values, n_clicks):
    if n_clicks is None or len(values) == 0:
        values = [child.props['value'] for child in children if child.type == dcc.Input]
    return f'You clicked button #{n_clicks}, which had the attribute: "{values}".'


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

python plotly plotly-dash
© www.soinside.com 2019 - 2024. All rights reserved.