资讯专栏INFORMATION COLUMN

【Copy攻城狮日志】踩坑小程序之can't read property 'of

hsluoyz / 3326人阅读

摘要:根据当时的情境,是在微信开发者工具中删掉该小程序然后重新载入就解决了,大家给出的结论是微信小程序开发者工具的。

Created 2019-4-2 22:17:34 by huqi
Updated 2019-4-2 23:17:34 by huqi

↑开局一张图,故事全靠编↑

从一个需求说起

接触过小程序的同学应该都接触过这样一个需求:点击列表页的某一项,进入详情页。同样,今天我也遇到这样一个需求,其实很简单的一个需求,无非就是一个tap事件加dataset传参实现路由带参数跳转到详情页。以前开发小程序的时候,也处理过这样的需求,本来应该是得心应手的。不过,可能是Copy别人代码Copy得太多太久太深,也从来没自主去想过别人为什么这样写、换种方式要怎样写、为什么换种方式就会报错等等诸如此类的问题,更别说去熟读开源源码,甚至自己造轮子。有时候反思,自己入行这么多年了,资质依旧平平,别说造轮子,就算是把别人轮子拿过来安上,都能整出一堆B.U.G。就比如开头的图片上,用的是鹅厂旗下某著名公司的豪华套餐,居然被我用得翻车了!--TypeError: Cannot read property "offsetLeft" of undefined !!!简直了,还是只能怪自己技术太low了。


(图片来源于网络)

提问的智慧

自从朋友给了我一个SS的IP和密码,现在我一有问题就是直接google开干。在我看来,与其把问题抛到各种广告满天飞的技术群或者丢给朋友圈里边的大佬,倒不如自己先动手解决,哪怕是尝试了所有的答案,至少对问题会有更深的理解,以后面试中遇到面试官问您在项目中遇到过什么问题之类的,因为经过自己的一番搜索加实践,一般印象会深刻很多。反而别人直接告诉您答案的,可能您的成本更小,但是收获甚微。根据以往的经验,遇到问题,自己动手,是更接近答案的唯一出路。或许您在开发中,遇到了某些问题,您通过一些途径解决了这个问题,然后,您又记录了下来,后续您遇到同样的问题,应该是可以迎刃而解的。如果您还把解决方案分享出来了,您简直是在造福人类。后来者,托您的福,更快的解决了同样的问题。

尝试方案1--重启开发者工具

can"t read property "offsetLeft" of undefined #1132
这是来自全球最大的同性交友网站GitHub上的一个issue,是由@yuwanlin 在一套遵循 React 语法规范的多端统一开发框架Taro中提出来的。根据当时的情境,是在微信开发者工具中删掉该小程序然后重新载入就解决了,大家给出的结论是微信小程序开发者工具的B.U.G。(注:该操作不会删除文件,请放心使用)--但是,我按照楼主的说法操作了一遍,结果然并卵,还是原来的B.U.G,还是一样的报错。
该方案失败

尝试方案2--外层加view

自定义组件在首次点击后会报错
@欧新志 这个小咯咯在2018-06-14向微信社区提出了类似的问题,他那个是自定义组件在点击之后出现了和我同款的B.U.G,而且也是存在嵌套子组件。评论中各位大神给出的答案是嵌套view。我也尝试了,试着加了一层view,但是问题依旧存在。不过我感还是和嵌套的子组件有关。于是,我各种尝试终于找到了一个方案。

第一次滚动和点击的时候都有这个报错,

下面是报错时的组件wxml

 

如果换成下面这样就不报错了

  

解决方案3--tap事件加在子组件里面

原代码:

    
      
        
          
          
            
              {{item.name}}
            
            
              {{item.business}}
            
            
              {{item.time}}
            
            
              {{item.status}}
            
          
        
      
    

修改之后:

    
      
        
          
          
            
              {{item.name}}
            
            
              {{item.business}}
            
            
              {{item.time}}
            
            
              {{item.status}}
            
          
        
      
    

只是把方法挂载到了不同的位置,确实截然不同的效果。看来接下来应该再研究一下小程序的组件。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/109354.html

相关文章

  • Copy城狮日志坑小程序canvas的显示层级问题

    摘要:依旧是很简单的需求,但是对于资深的攻城狮来说,除了布局,其他的就只能去了。特别是真机跑的时候,问题特别多。还是坑在基础不牢固,文档看得不深入,对小程序原生组件应该注意的事项把握不准,才会掉入这个非常基础的坑。 Created 2019-4-3 18:29:53 by huqiUpdated 2019-4-3 19:12:22 by huqi showImg(https://segmen...

    Coly 评论0 收藏0
  • Copy城狮日志坑小程序使用svg作为图标

    摘要:可以使用网络图片,或者,或者使用标签。这个是常识,连入门级小程序员都知道的。那我究竟写了个什么毫无疑问,一定是在中直接引用了本地图片。虽然可以将图标转化为字体应用,但对于我来说,就使用那么几个图标,实在是不想引用一大堆等文件,只想用下。 Created 2019-4-4 22:02:27 by huqi Updated 2019-4-4 23:12:34 by huqi show...

    Miracle_lihb 评论0 收藏0
  • Copy城狮日志】"Error: if there's nested dat

    摘要:工作日,每天起床机械地去上班,周末,每天优哉游哉,好像一个木偶,被生活蹂躏的木偶,意识以外的力量在操纵着的木偶。支持子节点数据异步加载。当然,官方将提供更改键值的。本许可协议授权之外的使用权限可以从处获得。 Created by huqi at 2019-5-18 10:32:30 Updated by huqi at 2019-5-18 12:32:23 showImg(http...

    褰辩话 评论0 收藏0
  • python3 logging 'ascii' codec can't

    摘要:环境问题发现最近刚从换到下搬砖,发现在跑的好好的代码,在下终端老是报错还是编码错误注册失败坦白说,看到这个错误好无奈。既然能在跑,换到就出错,那多半是环境问题了,然后我就开始了我的调试追踪之旅了跟踪调试先前调试都是一晃而过,只看结果。 环境:mac 10.12 python3 django 1.10 问题发现 最近刚从arch 换到 mac下搬砖, 发现在arch跑的好好的代码,...

    txgcwm 评论0 收藏0
  • antd报错Cannot read property 'filter' of u

    摘要:技术栈问题描述在状态组件中书写下的其中涉及点击某处出现弹框的操作,在中有选框,点击取消或清空所有表单信息。点击选框内的各个选项,报错。在点击取消之后,清空的是所有组件的内容,再打开新的弹窗后,组件的状态并没有刷新。 技术栈: react + dva + antd 问题描述: 在状态组件中书写state下的columns,其中涉及点击某处出现弹框modal的操作,在modal中有sel...

    Tychio 评论0 收藏0

发表评论

0条评论

hsluoyz

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<