Div(也有 id)问题设置值中的下拉(有 id)
Dropdown (with id) within a Div (also with id) problem setting a value
我正在尝试使用 daq.BooleanSwitch 来显示或隐藏下拉菜单。为了也隐藏所述下拉列表的 html.Label,我给了 Div 一个 id。这样我就可以将 Div 的样式从 {'display':'block'} 更改为 {'display':'none'} 并隐藏 both 标签和下拉菜单。
我的问题:
-> 不给 div 一个 id,导致只有下拉菜单被隐藏,而不是标签。
--> 给 div 一个 id 会导致我的下拉值(值=5)出现这个错误:
Exception has occurred: TypeError
string indices must be integers
相关代码:
html.Div([
daq.BooleanSwitch(
id='hour_or_day',
on=True,
label='Hour/Day',
labelPosition="bottom",
color="#002255")])
html.Div( id= 'hide_choosehour' [
html.Label('Choose hour:'),
dcc.Dropdown(
id='hourChoice',
options=[{'label': str(i), 'value': str(i)} for i in range(24)],
value = 5,
)
], style= {'display':'block'})
@app.callback(
Output('hide_choosehour', 'style'),
Input('hour_or_day', 'on')
)
def show_hide_ChooseHour(on):
if on:
return {'display': 'none'}
return {'display': 'block'}
if __name__ == '__main__':
app.run_server(port=8050, debug=True)
我找到了一个解决方法,即不使用标签或 hmtl.P(因此不再需要 div id),而是使用包含所需文本的占位符。不过还是很好奇,作为标签最好。欢迎大家多多指教,有什么不明白的地方请多多指教!
将 div 的 ID 移到括号之后而不是之前解决了我的问题!
html.Div([
html.Label('Choose hour:'),
dcc.Dropdown(
id='hourChoice',
options=[{'label': str(i), 'value': str(i)} for i in range(24)],
value = 5),
],id='hide_choosehour', style= {'display':'block'})
我正在尝试使用 daq.BooleanSwitch 来显示或隐藏下拉菜单。为了也隐藏所述下拉列表的 html.Label,我给了 Div 一个 id。这样我就可以将 Div 的样式从 {'display':'block'} 更改为 {'display':'none'} 并隐藏 both 标签和下拉菜单。
我的问题:
-> 不给 div 一个 id,导致只有下拉菜单被隐藏,而不是标签。
--> 给 div 一个 id 会导致我的下拉值(值=5)出现这个错误:
Exception has occurred: TypeError string indices must be integers
相关代码:
html.Div([
daq.BooleanSwitch(
id='hour_or_day',
on=True,
label='Hour/Day',
labelPosition="bottom",
color="#002255")])
html.Div( id= 'hide_choosehour' [
html.Label('Choose hour:'),
dcc.Dropdown(
id='hourChoice',
options=[{'label': str(i), 'value': str(i)} for i in range(24)],
value = 5,
)
], style= {'display':'block'})
@app.callback(
Output('hide_choosehour', 'style'),
Input('hour_or_day', 'on')
)
def show_hide_ChooseHour(on):
if on:
return {'display': 'none'}
return {'display': 'block'}
if __name__ == '__main__':
app.run_server(port=8050, debug=True)
我找到了一个解决方法,即不使用标签或 hmtl.P(因此不再需要 div id),而是使用包含所需文本的占位符。不过还是很好奇,作为标签最好。欢迎大家多多指教,有什么不明白的地方请多多指教!
将 div 的 ID 移到括号之后而不是之前解决了我的问题!
html.Div([
html.Label('Choose hour:'),
dcc.Dropdown(
id='hourChoice',
options=[{'label': str(i), 'value': str(i)} for i in range(24)],
value = 5),
],id='hide_choosehour', style= {'display':'block'})