为何在ipyvuetify的TextField中获取到'!!disabled!!'值?
问题:点击按钮后TextField的v_model返回'!!disabled!!'的原因
向v_document中输入文本,点击v_btn_document按钮后,打印v_document.v_model却得到'!!disabled!!',这是为什么?
复现代码
import ipyvuetify as vue def on_click_get_numbers(widget, event, data): print(v_document.v_model) # 此处得到'!!disabled!!',为什么? v_document = vue.TextField( style_ = 'width: 290px', label = '文件编号', type = "text", outlined = True, clearable = True, disabled = False, placeholder = '') v_btn_document = vue.Btn( class_ = 'mx-2 green darken-1', style_ = 'width: 100px; height: 55px', children = ['提交']) v_empty = vue.Img( width = 30, ) interface1 = vue.Html(tag='div', class_='d-flex flex-row', children=[ vue.Html(tag='div', class_='d-flex flex-row', children=[v_document, v_empty, v_btn_document]), ]) v_btn_document.on_event('click', on_click_get_numbers) display(interface1)
原因与解决办法
- 原因:这是ipyvuetify组件状态同步的特性问题,直接访问
v_model属性时,可能无法获取前端最新的用户输入值,而是返回组件内部用于标记状态的占位符'!!disabled!!'。 - 解决办法:在回调函数中通过组件的
get_state()方法获取最新的状态数据,从中提取v_model的实际值。修改后的回调函数如下:
def on_click_get_numbers(widget, event, data): print(v_document.get_state()['v_model']) # 此处将输出实际输入的文本
内容的提问来源于stack exchange,提问作者João Pimentel Ferreira
相关产品推荐
相关产品推荐

