Вы можете создать весь тег html.H1
в обратном вызове, как в примере ниже.
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div([
dcc.Input(
id='ticker',
value='AAPL',
type="text"
),
html.Button(
'Submit',
id='button'
),
html.Div(
id='ticker_header'
),
])
@app.callback([Output('ticker_header', 'children')], [Input('button', 'n_clicks')],
[State('ticker', 'value')])
def update_ticker_header(clicks, ticker):
return [html.H1('DCF Valuation ' + f'{ticker}')]
if __name__ == '__main__':
app.run_server(debug=True)
В качестве альтернативы вы можете создать дополнительный html.Div
внутри тега html.H1
, а затем обновить только содержимое этого html.Div
в обратном вызове, как в примере ниже.
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div([
dcc.Input(
id='ticker',
value='AAPL',
type="text"
),
html.Button(
'Submit',
id='button'
),
html.H1(children=[
'DCF Valuation ',
html.Div(id='ticker_header', style={'display': 'inline'}),
]),
])
@app.callback([Output('ticker_header', 'children')], [Input('button', 'n_clicks')],
[State('ticker', 'value')])
def update_ticker_header(clicks, ticker):
return [f'{ticker}']
if __name__ == '__main__':
app.run_server(debug=True)