[youzan/vant]van-field组件当label是动态值时,is-link的值也是动态并且来源于接口,v-model绑定的值不更新页面

2023-12-18 954 views
6
重现链接

https://codesandbox.io/s/vant-3-issue-template-forked-37rz0x?file=/src/App.vue

Vant 版本

3.6.11

描述一下你遇到的问题。

van-field组件当label是动态值时,is-link的值也是动态并且来源于接口,v-model绑定的值不更新页面,例子上没法加接口请求,就大概写的字段都是本地提前申明的了

重现步骤

使用表单van-field组件,将label设置成动态的,然后is-link属性设置成动态的,并且来源是接口(如果是本地直接申明不会有问题),接口的数据是放在ref申明的字段里面的,这时候v-model绑定的值在页面上就不会显示出来,但是v-model的值是绑定上了,再结合picker组件,去选值的时候,页面也不再更新,如果将接口拿到的值赋值给事先在本地申明的字段上,再放到is-link上一样也页面展示位置变成了空白

设备/浏览器

谷歌浏览器

回答

3

用 setTimeout 模拟了一下你说的问题,没有复现呢

image

5

数据从接口过来就会有问题,这种模拟的本地也不会有问题,都试过了,换了好几个接口试了都是有问题的

9

从逻辑上来说,数据是从接口获得,还是通过其他方式 mock,对组件而言是一样的,没有区别。

2

1 2 3 4 5 接口数据的文本是文,label和is-link都是动态的时候,页面没更新,但是打印了一下绑定的值是有的,后面把label换成写死的,is-link还是动态的,页面就更新了,并且还试了label动态,is-link写死,页面也正常更新显示,上面数据都是来源于接口,不能本地申明的字段,才会又这样的问题,通过settimeout的方式mock出来的数据也是正常的,只有接口来的数据有问题