uniapp(主要针对微信小程序) 踩坑日记

Scroll Down


重要

  • 引用类型属性的数据绑定是深拷贝,导致在绑定引用类型的属性时,在子组件中修改引用类型中的某一个元素时,并不能触发 双向绑定。这个问题导致我在做数据渲染表单,并绑定一个对象参数时,出现了修改表单,对象参数不会发生相应改变的bug。

       解决方法:

                   方法一:在子组件中将属性名写为value,通过$emit("input")事件实现双向绑定。

                   方法二:或者通过监听子组件中值的变化,通过自定义事件传递变化,父组件通过                                    监听事件做赋值操作。



  • loadmore 组件的margin-top属性在ios中失效。这个问题导致使用了loadmore的页面中,ios中部分页面被遮挡

        解决方法:
      1. 在公共的地方加
                        page { padding-bottom:1rpx; /* 解决 load-more 底部 margin 不显示的问题 */ }


一般

  • 原生底部tabBar无法实现动态加载

        解决方法:

      • 不使用原生的tabBar,在页面中自己实现一个。
  • 首页自带的homeButton,不满足自己的退出登陆功能
        解决方法:
      1. 在pages.json的对应页面的style配置项中添加 

        "navigationStyle": "custom" //自定义头部导航样式
      2. 通过uni.getSystemInfo获取设备头部高度,利用获取到的高度将正常内容顶出来

        uni.getSystemInfo({
           success: (res) => {
             this.statusBarHeight = 68;
             if (res.model.indexOf("iPhone X") !== -1) {
               this.statusBarHeight = 88;
             } else if (res.model.indexOf("iPhone") !== -1) {
               this.statusBarHeight = 64;
             }
           },
           fail(e) {},
         });
      3.  添加自己 的 登出 按钮就可以了