问题描述
- 在vue的prototype上挂在了国际化函数:
- 在页面上调用函数进行国际化文案
- 打包结果的 render 函数
- 最终渲染的结果
国际化出现静态数据渲染成了null
通过询问飞书平台侧的同学,他们给的结论是:
$root 之前 set 的 $root.m1、$root.m2、$root.m4 都会被后面 set 的 $root 初始值(里面全是 null),设置为了 null,而在 $root 后面 set 的 $root.m5、$root.m7、$root.m8 都是有值的
产生该问题的原因是飞书侧最原始的 setData 数据的方式是通过 Object.keys 遍历所有 set 的数据的,Object.keys 又是会根据对象中属性的赋值先后循序进行遍历的
现平台侧提供有新渲染框架(不再使用 Object.keys 的方式在 webview 层处理,直接在 service 层进行处理),但是使用该框架有最小客户端版本要求,所以为了兼容使用旧版本客户端的用户,可能仍需要 uniapp 侧提供解决方式
其他信息:
当然不仅仅是静态数据有问题,响应式数据可能也会有问题,根据推测也应该是 setData 数据顺序引起的
预期结果
渲染结果正常显示国际化文案
实际结果
出现不正常渲染
系统信息:
- 发行平台: 飞书小程序
- uni-app版本: 2.0.2-3070920230324001
1条答案
按热度按时间zpqajqem1#
@zhetengbiji@fxy060608 能给个归因么,麻烦啦