JavaScript 程序错误Cannot use 'in' operator to search的解决方法

今天编程时,JavaScript 程序报了这样的错误:Cannot use 'in' operator to search for...,具体错误信息如下:

坦白说,这样的错误最难调试。因为它并不指向你所写的具体代码,而是泛泛指向了 lib.js 文件(该文件通常是第三方的打包压缩库),你几乎无法依据错误类型与错误指向来定位到实际编程中的错误位置。

怎么办?

这个时候,只有发挥“死磕”精神了!

死磕步骤:

依据故障页面以及错误信息,定位到出错的文件,这一点应该不难;

在出错的页面中,依次点击调试,看一看在哪一步开始报错 了!很关键!比如,一开始加载就出错了,那就定位到 js 文件的初始化部位;点击某个按钮出错了,那就定位到该按钮的对应事件代码中;以此类推。

在定位的代码范围内,采用“折中法”,一点点注释掉,刷新页面查看是否依然出错,如果出错,这说明注释掉部分的代码没有问题,放开注释,继续其他可疑的代码部分;如果没有错误了,恭喜你,你的定位位置就更加精细化了!总体思路就是如此,循环往复,相信,总会有“拨开云雾见朗朗青天”的欢喜的!

console.log('rendernerererer: ', schoolData)

const schoolNode = (
  <Select style={{width: '100%'}} placeholder="请选择所属学校">
    { schoolData.length && schoolData.map((item, idx) => (
      <Option key={idx} value={`${item.id}`}>{item.name}</Option>
    )) }
  </Select>
);

可以看到,rendernerererer 正确打印了出来,问题出在该行代码之后:

const schoolData = this.state.schoolList;
console.log('rendernerererer: ', schoolData)

const schoolNode = (
  <Select style={{width: '100%'}} placeholder="请选择所属学校">
    { schoolData.length ? schoolData.map((item, idx) => (
      <Option key={idx} value={`${item.id}`}>{item.name}</Option>
    )) : <Option value=''>请选择...</Option> }
  </Select>
);
const schoolData = this.state.schoolList;
console.log('rendernerererer: ', schoolData)

const schoolNode = (
  <Select style={{width: '100%'}} placeholder="请选择所属学校">
    { schoolData.length ? schoolData.map((item, idx) => (
      <Option key={idx} value={`${item.id}`}>{item.name}</Option>
    )) : null }
  </Select>
);

以上这篇JavaScript 程序错误Cannot use 'in' operator to search的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 深入分析javascript中的错误处理机制

    前面的话 错误处理对于web应用程序开发至关重要,不能提前预测到可能发生的错误,不能提前采取恢复策略,可能导致较差的用户体验.由于任何javascript错误都可能导致网页无法使用,因此作为开发人员,必须要知道何时可能出错,为什么会出错,以及会出什么错.本文将详细介绍javascript中的错误处理机制 error对象 error对象是包含错误信息的对象,是javascript的原生对象.当代码解析或运行时发生错误,javascript引擎就会自动产生并抛出一个error对象的实例,然后整个程序

  • 全面了解javascript中的错误处理机制

    前面的话 错误处理对于web应用程序开发至关重要,不能提前预测到可能发生的错误,不能提前采取恢复策略,可能导致较差的用户体验.由于任何javascript错误都可能导致网页无法使用,因此作为开发人员,必须要知道何时可能出错,为什么会出错,以及会出什么错.本文将详细介绍javascript中的错误处理机制 error对象 error对象是包含错误信息的对象,是javascript的原生对象.当代码解析或运行时发生错误,javascript引擎就会自动产生并抛出一个error对象的实例,然后整个程序

  • JavaScript 程序错误Cannot use 'in' operator to search的解决方法

    今天编程时,JavaScript 程序报了这样的错误:Cannot use 'in' operator to search for...,具体错误信息如下: 坦白说,这样的错误最难调试.因为它并不指向你所写的具体代码,而是泛泛指向了 lib.js 文件(该文件通常是第三方的打包压缩库),你几乎无法依据错误类型与错误指向来定位到实际编程中的错误位置. 怎么办? 这个时候,只有发挥"死磕"精神了! 死磕步骤: 依据故障页面以及错误信息,定位到出错的文件,这一点应该不难: 在出错的页面中,依

  • Linux程序运行时加载动态库失败的解决方法

    Linux下不能加载动态库问题 当出现下边异常情况 ./test: error while loading shared libraries: libmfs_open.so: cannot open shared object file: No such file or directory 若动态库的路径在(/usr/cluster/.share/lib) 解决办法: 方法一.在/etc/ld.so.conf文件中添加路径,vi /etc/ld.so.conf 添加下边内容 include ld

  • JavaScript监听手机物理返回键的两种解决方法

    JavaScript没有监听物理返回键的API,所以只能使用 popstate 事件监听. 有两个解决办法: 1.返回到指定的页面 pushHistory(); window.addEventListener("popstate", function(e) { window.location = 'http://www.baidu.com'; }, false); function pushHistory() { var state = { title: "title&quo

  • JavaScript中无法通过div.style.left获取值的解决方法

    一.问题总结: 样式必须直接写在元素内部才能通过div.style.left直接获取属性值(也就是必须是内联样式才行),定义在css中的样式不能通过这种方式获取. 让元素移动到200停止 setTimeout ( function () { var div = document.getElementById("div4"); //var left = parseInt(div.style.left) + 5; var left = div.offsetLeft + 5; div.sty

  • 微信小程序自定义弹窗滚动与页面滚动冲突的解决方法

    本文为大家分享了微信小程序自定义弹窗滚动与页面滚动冲突的解决方法,供大家参考,具体内容如下 先看效果是否是自己需要的 实现步骤: 1.整个布局用作为根节点包裹所有view,并动态绑定scroll-view的scroll-y属性 2.样式文件中设置Page的overflow-y属性值为hidden 3.样式文件中设置scroll-view的height属性值为100% 4.打开自定义弹窗的点击事件中,更改isScroll的值为false,关闭弹窗的点击事件中,更改isScroll的值为true J

  • “/”应用程序中的服务器错误和Server Error in ''/'' Application.的终极解决方法

    "/"应用程序中的服务器错误. 运行时错误 说明: 服务器上出现应用程序错误.此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因).但可以通过在本地服务器计算机上运行的浏览器查看. 详细信息: 若要使他人能够在远程计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的"web.config"配置文件中创建一个 <customErrors> 标记.然后应将此 <customErrors> 标记

  • “/”应用程序中的服务器错误和Server Error in ''/'' Application.的终极解决方法

    "/"应用程序中的服务器错误. 运行时错误 说明: 服务器上出现应用程序错误.此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因).但可以通过在本地服务器计算机上运行的浏览器查看. 详细信息: 若要使他人能够在远程计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的"web.config"配置文件中创建一个 <customErrors> 标记.然后应将此 <customErrors> 标记

  • 关于“未指定的错误”的问题 的比较正解的解决方法

    搜索关键字为(和以前一样)Microsoft JET Database Engine未指定的错误 错误提示为 Microsoft JET Database Engine (0x80004005) 未指定的错误 昨天从win2003转到winxp pro版,但是在调试相册程序时,发现上面的错误,这个错误困扰我今天一天时间了,一直找不到解决方法,重装系统也不行.但程序有win2003服务器上运行正常,在网上搜索了一下,发现出现这种原因有多种,最常见的就是下面这两种. 原因系统temp文件的访问权限不

  • MySQL错误Forcing close of thread的两种解决方法

    最近网站访问量大增,可能有些频道程序也有一些问题,造成了MySQL数据库出现Forcing close of thread 28790 user错误.如果遇到这种情况改怎么解决呢?icech找到两种方法来解决: 1.修改mysql配置文件 如果配置文件是my.ini,可以在在my.ini添加下面两条内容: skip-locking skip-name-resolve 注意:在新版本的mysql中,skip-locking已经被换成了skip-external-locking,如果使用skip-l

  • startJVM错误Unable to load native library: libjvm.so解决方法

    startJVM是加载jvm用的方法.在JPype,apache mod等等很多地方都用到.但凡要用其他语言来加载jvm进程,就要用到这个. 可惜往往会出错.一般都是 复制代码 代码如下: Unable to load native library: libjvm.so: cannot open shared object file: No such file or directory 但是libjvm.so确实存在啊. 解决方法很简单: 在/etc/profile里面设置: 复制代码 代码如下

随机推荐