自定义 tabBar 在切换 tab 时会使 tabBar 消失

app.json和页面json 文件中引用自定义的tabbar组件,引发的系列页面错乱问题:

1、出现问题的机型: ios、android均会出现(如iphone8plus、iphoneX、三星s8)

2、微信版本号: 7.0.12

3、出现问题的时间:

时间:2020年6月5日上午11点左右到下午14点左右

时间:2020年6月10日上午10点左右到上午11点左右

4、未改任何代码,线上版本、体验版都自动恢复正常

时间:2020年6月5日下午14点左右之后。

时间:2020年6月10日上午11点左右之后。

现将出现问题的场景和方案描述如下:

调试工具显示正常,手机预览和真机调试异常

场景一自定义 tabBar 在切换 tab 时会使 tabBar样式丢失,页面错乱。原因:app.json文件中引用了自定义的tabbar组件

1能复现问题的代码片段和页面错乱,如图所示:

自定义 tabBar 在切换 tab 时会使 tabBar 消失_第1张图片

自定义 tabBar 在切换 tab 时会使 tabBar 消失_第2张图片

2、暂时的解决方案:把app.json中引用自定义的tabbar组件删除。点击页面tabar时,页面恢复正常。如图所示:

自定义 tabBar 在切换 tab 时会使 tabBar 消失_第3张图片

场景二:弹窗显示异常(1、ios点击弹窗入口,弹窗有时不出现,有时出现一部分但位置不对。2、android未点击弹窗入口,弹窗直接出现一部分)。原因:页面json文件中引用了自定义的tabbar组件。

1、能复现问题的代码片段和页面错乱,如图所示:

自定义 tabBar 在切换 tab 时会使 tabBar 消失_第4张图片

自定义 tabBar 在切换 tab 时会使 tabBar 消失_第5张图片

2、暂时的解决方案:把所有页面的 json 文件中引用自定义的tabbar组件删除。页面恢复正常如图所示。

自定义 tabBar 在切换 tab 时会使 tabBar 消失_第6张图片

由于有些非tabbar页面也需要展示tabbar,所以删除页面json中的自定义tabbar引用是符合不了需求的。

就想到了另一个解决方案
tabbar组件拷贝一份放到components中,和components目录同级的tabbar组件需要同时保留(因为使用的是自定义组件,所以不能删除,需保留),页面json去引用components目录里面的tabbar组件,app.json不需引用任何tabbar组件

代码段如图所示:

自定义 tabBar 在切换 tab 时会使 tabBar 消失_第7张图片

自定义 tabBar 在切换 tab 时会使 tabBar 消失_第8张图片

 

你可能感兴趣的:(小程序)