问题描述
我对使用 ipyvuetify 还很陌生,我想知道实现条件渲染的最佳方法是什么。当我移动到仪表板上的另一个选项卡时,我希望能够使导航侧边栏中的控件消失。
类似行为的简单实现如下:
import ipyvuetify as v
button1 = v.Btn(color='red',children = ['Submit 1'],style_ = 'width:30%')
button2 = v.Btn(color='blue',children = ['Submit 2'],style_ = 'width:30%')
def on_click(widget,event,data):
button1.disabled = True
button2.on_event('click',on_click)
v.Html(tag='div',class_='d-flex flex-column',children=[button1,button2])
当点击按钮时没有 button1.disabled = True
,我想删除/停止一起呈现控件。我认为 v-if
的一些实现是可行的,但我似乎无法弄清楚。
有什么想法吗?
解决方法
您可以更改按钮容器的子项:
import ipyvuetify as v
button1 = v.Btn(color='red',children = ['Submit 1'],style_ = 'width:30%')
button2 = v.Btn(color='blue',children = ['Submit 2'],style_ = 'width:30%')
def on_click(widget,event,data):
if button1 in my_buttons.children:
my_buttons.children = [button2]
else:
my_buttons.children = [button1,button2]
button2.on_event('click',on_click)
my_buttons = v.Html(tag='div',class_='d-flex flex-column',children=[button1,button2])
my_buttons
注意:更改列表或字典时,始终创建一个新实例。未检测到现有实例的突变。
,在这里回答我自己的问题。想出了一种的方法来做到这一点,但可能有更好的方法。我更新了 button1.style_
中元素的 css 显示属性。
下面显示了一种打开和关闭按钮的方法。毫无疑问,有更简洁的方法可以做到这一点。
button1 = v.Btn(color='red',data):
if button1.style_ != 'display:none':
button1.style_ = 'display:none'
else:
button1.style_ = 'display:block; width:30%'
button2.on_event('click',on_click)
v.Html(tag='div',button2])