使用回调在小屏幕上切换折叠
use a callback to toggle the collapse on small screens
我在很多代码中看到了很多这样的代码,我什至还通过从某个地方复制它来使用这段代码。但我不明白他们在做什么。任何人都可以帮助我使用以下代码吗?谢谢
# we use a callback to toggle the collapse on small screens
@app.callback(
Output("navbar-collapse", "is_open"),
[Input("navbar-toggler", "n_clicks")],
[State("navbar-collapse", "is_open")],
)
def toggle_navbar_collapse(n, is_open):
if n:
return not is_open
return is_open
if __name__ == "__main__":
app.run_server(debug=False)
此回调是通过点击 ID 为 navbar-toggler
的可点击元素(很可能是按钮)触发的。这是一个 input
参数,意味着只要该元素的 n_click
发生变化,就会触发回调。
state
参数是可折叠元素的当前折叠状态(True
或 False
)。
if
条件检查按钮是否已被点击,如果没有,则很可能是应用程序的初始加载,因此 return 当前可折叠元素已折叠原样。如果n_clicks
大于0(即点击触发回调),则return否定当前可折叠元素的折叠状态(即如果是True
改变False
,反之亦然)。这样,当它折叠并且您切换按钮时,可折叠元素将 re-open 反之亦然。
我在很多代码中看到了很多这样的代码,我什至还通过从某个地方复制它来使用这段代码。但我不明白他们在做什么。任何人都可以帮助我使用以下代码吗?谢谢
# we use a callback to toggle the collapse on small screens
@app.callback(
Output("navbar-collapse", "is_open"),
[Input("navbar-toggler", "n_clicks")],
[State("navbar-collapse", "is_open")],
)
def toggle_navbar_collapse(n, is_open):
if n:
return not is_open
return is_open
if __name__ == "__main__":
app.run_server(debug=False)
此回调是通过点击 ID 为 navbar-toggler
的可点击元素(很可能是按钮)触发的。这是一个 input
参数,意味着只要该元素的 n_click
发生变化,就会触发回调。
state
参数是可折叠元素的当前折叠状态(True
或 False
)。
if
条件检查按钮是否已被点击,如果没有,则很可能是应用程序的初始加载,因此 return 当前可折叠元素已折叠原样。如果n_clicks
大于0(即点击触发回调),则return否定当前可折叠元素的折叠状态(即如果是True
改变False
,反之亦然)。这样,当它折叠并且您切换按钮时,可折叠元素将 re-open 反之亦然。