2021-7-27

实习中遇到的问题
1.关于rn的panresponder组件和animated组件的使用,需要指定一个move的回调函数,在ios端的时候会别系统事件打断,比如下拉通知栏,此时的这个滑动的组件就停止了,定在了手指最后离开的地方,但是当我再去滑动这个组件的时候,这个组件会从初始值来计算移动的位置,于是就会出现手指滑动的地方和组件真实的显示会有一段距离,这就是一个bug,于是我就在想怎么去解决这个问题,我就在想是不是rn会有专门的监听函数来监听ios的这种系统事件,但是好像没找到这种函数,于是我就变换了一种思路,我使用了一个state来保存x轴和y轴的值,当再次移动的时候,我只需要把移动的矢量和这个保存的state的值相加减,就可以得到一个准确的位置的值,只需要将这个值映射成元素的位置就可以了,相当于一个记录了移动位置的东西。
2.还是上面这个组件,因为这个组件是包括了点击事件和拖拽的一个手势响应,所以在某些时刻,点击与拖拽会冲突,表现为,明明我是想点击这个组件进行跳转,但是组件就响应为我拖拽了很小的一段距离,就没办法跳转了,由于在rn中要去使用手势就必须使用animate组件和panresponder组件结合使用,对于panresponder这个组件来说有一个生命周期,来判断是否让这个组件响应某些手势,比如点击,拖拽等等,由于我此时的bug就是点击和拖拽有时候会冲突,分不清到底是拖拽还是点击,于是我查了下官方文档发现panresponder这个组件的手势响应会有一个冒泡的阶段,于是我也就是说,我外面的一层负责拖拽,里面的一层负责点击,有时候我点击的时候,外层的就先响应了我的点击,并认为他是拖拽,于是我就没办法使里面的组件响应点击了,我的解决办法是在他的生命周期函数中,去判断本次点击的x轴和y轴的矢量值,当这次矢量值很小,小于5时,说明此次用户可能只是想点击一下,而不是想拖拽,于是我就使外层组件滑动的部分失效,使内部组件响应点击,相反大于5时,说明用户是想滑动,那我就让外层响应滑动即可。
3.关于数据传输的问题,我的一个组件是通过HOC包裹,来展示降级ui的,当组件的props没有数据或者接口报错的时候就将展示降级ui,但是我的数据传输的是一个数组,我在父组件的state里将他初始化成了一个数组,传到子组件的时候我使用![]来判断他是否有值,但是当数据返回比较慢的时候,数据还没回来但是传入的是父组件初始化的这个数组,于是到了子组件![]返回的是false,我就直接展示降级ui了,这就不对了,这样的话不管数据来没来就都是降级UI了,于是我就把最初的state初始化为null,这样的话,当数据还没请求到达的时候我的props传过去就是一个null,我在用!null去判断,返回的就是true,那我就将子组件渲染成null,当数据返回回来,请求体里没有数据,就设置成[],这样在子组件就可以渲染降级UI,当有数据的时候就渲染成正常的UI

自己做项目遇到的问题
1.商品搜索时,希望将搜索记录保存下来,我是用的是local Storage保存在本地,当用户第一次点击的时候就从本地保存中读取上次的搜索记录,进行渲染,
2.商品联想进行节流处理,
3.nginx反向代理实现跨域,
4.搜狗浏览器,布局兼容有问题,导致浮动元素顶上去了,使用伪元素清除浮动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值