微信小程序中常见问题总结,看看你有没有遇到

从0到1开发小程序也有一段时间了,小程序开发相较h5开发或者web网页开发起来确实方便很多,但前提是你要理解mvvm框架模式,了解生命周期等等,下面就总结一下我项目中遇到的一些坑以及自己是如何解决的

1.返回上一级页面的时候如何得到已经修改过的数据

 问题:

一般我们会把一开始就要渲染的数据写在onLoad里面,大部分时候这个都是没问题的,但是当我修改了一开始要渲染的数据的时候,然后跳转到了下个页面,然后又从下个页面返回到当前页面,那么就会遇到当前本来修改好了的数据竟然还是原来的数据,因为onLoad之后会触发一次,返回上一级的数据,页面也并没有重新请求onLoad里面的数据,所以就造成了数据并没有发生改变

解决办法

把一开始就要渲染的数据写在生命周期onshow里面。onshow里面的数据不论你是重新返回到当前页面还是从后天切换到前台,都会重新运行一次,这样就可以请求最新的数据

2.微信小程序 在canvas画布上划动,如何阻止页面上下动

问题:

之前使用使用canvas写了一个滑动解锁的,在安卓手机上都是好好的,但是到了苹果手机里,用户滑动的时候页面也会被拖动,很多人也遇到过,是canvas的滑动在苹果手机有兼容性问题导致的

解决办法:

a.在canvas上设置disable-scroll属性,禁止canvas进行上下滑动,并且还要设置一个触摸事件才能生效

b.在当前页面的page页面中设置

"disableScroll":true

3.小程序中进行数组去重

经常会碰到的情况,当我们发送请求删除数据之后,服务器接口数据是变了,但是页面上的数据并没改变,只有再重新请求一次接口才会改变,但是每次删除数据都重新请求一遍是接口是很不合理的,还得重新渲染数据,一般我们都会手动使用slice删除,这样会遇到的一个问题就是数据的确删除了,但是当我们上拉加载更多的时候,数据的序号就会出现重复的,这个时候只能前端进行手动去重

4.小程序中的websocket及时通讯

1.建立连接

wx.connectSocket({

      url: 'wss://net.guanggu.com:8080'

    });

2.查看连接是否打开

wx.onSocketOpen(function(res) {

        console.log('连接已经打开');

    });

3.发送消息

wx.sendSocketMessage({

data:msg

 })

4.获取传回来的消息

wx.onSocketMessage(function(res){

console.log('收到服务器内容:'+ res.data)

})                       

5.设置手机软键盘中的字 confirm-type

当你输入完毕,手机软键盘右下方的文字一般都是换行而不是发送,但是有时候项目需求是点击软件盘中自带的确定按钮来发送文字,而不是我们自己写的按钮,这时候就可以使用小程序的input中的confirm-type

  

注意:这个属性只有input有,但input是无法实现文字换行的,而textarea可以实现文字换行,却无法修改软件盘中的文字,鱼和熊掌不可兼得,因此需酌情考虑,

6.滑动组件scroll-view向右滑动不生效

解决办法:

1.scroll-view最外层一定要包一层标签veiw

2.最外层的标签要设置属性  over-flower:hidden    white-space: nowrap;

3.scroll-view要设置width 为100%  scroll-x

     

         

           





                                      

你可能感兴趣的:(微信小程序中常见问题总结,看看你有没有遇到)