赞
踩
起因是发现Vant
的Calendar
组件的 x年x月 在项目里没有展示,需要解决,由此记录解决过程。
下面是官方组件展示,红框即表示在项目里未正确展示。
排查原因
Calendar
组件源码中该字段的展示,首先控制该字段的showMonthtitle
条件依赖的showSubTitle
默认为true
,项目里也未手动设为false
,再查看该字段的来源,发现是国际化转化的,且该字段的国际化变量是一个函数:JSON.parse(JSON.stringify)
深克隆导致了函数变量的丢失。vue-i18n
的弊端吧, 也可以说是JSON.parse(JSON.stringify)
的弊端。然而大部分场景的深克隆大家还是会使用这个方式,很少有人会实现自己的一套深克隆方法。我们的解决方案就是Vant
使用自己的语言包,就不合并我们的,本身在项目中我们传给组件的就是国际化后的数据,就没必要我们手动给Vant
语言包包裹一层了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。