分析1、特别注意,ExtJs在定义ID时必须是全局唯一性,当打开两个界面,两个界面中组件ID相同,当关闭其中一个页面时,组件销毁,在另一个页面时将找不到父节点。因为不知道销毁的是哪一个组件。

特别是在封装通用组件时,不要定义组件的ID,而要改成itemId,否则不同页面同时显示时用到相同的组件ID,就会出现如下错误:TypeError: Cannot read property 'parentNode' of undefined.


分析2、Extjs开发一个系统,各个页面定义组件ID的时候,必须是全局唯一性,否则当加载有同一个ID的两个页面的组件后,关闭其中一个页面会因为不能确定关闭是那个组件就报找不到父亲节点的错误:

TypeError: Cannot read property 'parentNode' of undefined.

这个错误是指:没有父节点,都是野孩子,并不是指‘parentNode’这个属性没有定义,但可以理解为某个属性定义错误,这个错误害足足找了一天啊。


Extjs 中id与itemId的区别


为了方便表示或是指定一个组件的名称,我们通常会使用id或者itemId进行标识命名。(推荐尽量使用itemId,这样可以减少页面唯一标识而产生的冲突)

id:
       id是作为整个页面的Component的唯一标识,这也意味着在整个页面中只允许有唯一一个名称的id,同时这里的Component的id也将变为element中的id,所以如果出现了两个,页面将会出现崩塌变形等等不可以想象的问题。
       而作为一个组件是必须有自己的唯一标识(id)的,在没有设置Component的id的时候系统将自动为组件添加id

itemId:
       itemId是用于container底下的元件的,这也说明itemId只是一个局部的元件标识名称,在全局上是不需要遵循唯一性的。

   从上面的叙述中可以看出一些使用上需注意的地方

  1. 若你要取得相关的Component 若是属于container 请设置id

  2. 若是只属于某个container 底下的元件,请设置itemId;某些情况下当然你也可以连同id 一起设置,比如需要改变css style,除此之外itmeid 还是优先的选择

  3. getCmp 以及getComponent 是不一样的,使用上必须注意,必须搭配id 以及itemid 使用

如此一来id 与itemid 就会有从属关系,非必要不需定义id,也不会造成在定义id 时需要编码避免重覆,而因为itemid 是属于某个id 底下的,所以即使itemid 重覆,也可以利用唯一的id 利用Ext.getCmp 取得参照后,在接着使用getComponent 取得所属itemId 的参照。

怎么获取id和itemId的组件和元件(从以上可以明显的看出,itemId是个局部的元件名称):

id: Ext.getCmp(id);

itemId:Ext.getCmp(id).getComponent(itemId);.


参考链接:

https://blog.csdn.net/heirenheiren/article/details/39932979

Extjs4---Cannot read property 'addCls' of null
https://blog.csdn.net/heirenheiren/article/details/39896029


https://forum.sencha.com/forum/showthread.php?108750-TypeError-Cannot-read-property-parentNode-of-undefined

【ExtJs】TypeError: Cannot read property ‘parentNode‘ of undefined相关推荐

  1. 【Webpack】TypeError: Cannot read property ‘tap‘ of undefined at HtmlWebpackPlugin.

    [Webpack]TypeError: Cannot read property 'tap' of undefined at HtmlWebpackPlugin. 报错如下: 解决办法: 下载安装指定 ...

  2. 【微信小程序报错解决方法】TypeError: Cannot read property ‘setData‘ of undefined

    场景 自己在调用 wx.getSystemInfo({}) 时,开发工具自动补全了代码.在 success 回调中按照以往的写法调用 this.setData({ }); 时,报错:TypeError ...

  3. 【微信小程序】TypeError: Cannot read property ‘get‘ of undefined Error: MiniProgramError

  4. 微信小程序[渲染层错误] TypeError: Cannot read property ‘replace‘ of undefined 【解决办法】

    微信小程序报错: [渲染层错误] TypeError: Cannot read property 'replace' of undefinedat rewritor (http://127.0.0.1 ...

  5. 微信小程序[渲染层错误] TypeError Cannot read property ‘replace‘ of undefined 【解决办法】

    微信小程序报错: [渲染层错误] TypeError: Cannot read property 'replace' of undefinedat rewritor (http://127.0.0.1 ...

  6. 接上一篇:【Vue 项目打包后访问报错:Uncaught TypeError: Cannot read property 'call' of undefined】

    上一篇:Vue 项目打包后访问报错:Uncaught TypeError: Cannot read property 'call' of undefined 其实在修改 webpack.prod.co ...

  7. 【StackFlow】Uncaught TypeError: Cannot read property 'pageCount' of undefined

    Exception 使用Ext JS 4 分页查询时,当查询结果为0时报错: Uncaught TypeError: Cannot read property 'pageCount' of undef ...

  8. Nodejs报内部错误 TypeError: Cannot read property ‘destroy‘ of undefined的解决方法

    Nodejs报内部错误 TypeError: Cannot read property 'destroy' of undefined的解决方法 [现象] 内部错误 TypeError: Cannot ...

  9. Error in render: “TypeError: Cannot read property ‘banners‘ of undefined“” 渲染错误问题(render是渲染时候报错的)

    [vue踩坑]Error in render: "TypeError: Cannot read property 'banners' of undefined"" 渲染错 ...

最新文章

  1. 【技术干货】浅析State-Thread
  2. Java一分钟 || Docker因权限问题无法启动Springboot怎么办
  3. 无代码iVX编程实现简单跳跃超级玛丽游戏
  4. perf +火焰图使用
  5. Python 测试驱动开发读书笔记(三)使用单元测试测试简单的首页
  6. matlab 贝塞尔曲线,matlab实现贝塞尔曲线绘图pdf查看
  7. android异步任务框架,详解Android App中的AsyncTask异步任务执行方式
  8. 友盟分享纯图片到微信
  9. 贼心不死安cuda记录-双显卡笔记本Ubuntu安装cuda9.0
  10. Windows Server 2008 R2 企业版操作说明手册
  11. C# winform中 选择文件和保存文件
  12. Latex特殊符号波浪号~,^
  13. linux 文件修复工具,五款救急的Linux文件恢复软件
  14. 5.RefineDNet论文阅读
  15. 魅族M9同步谷歌联系人
  16. Java人民币小写转大写字符串
  17. Datax及Datax-web 下载使用
  18. 西安大明宫上演“灯光秀” 光影融合讲述唐代风韵
  19. 百度开发平台api有哪些
  20. nginx屏蔽中国ip地址以及开放特定ip地址

热门文章

  1. linux排查木马后门之定时任务计划
  2. Django编写个人博客(十)博客阅读排行
  3. hbase快速入门之---表设计(使用建议)
  4. 冰冰学习笔记:vim工具的基本操作
  5. C++学习笔记(三)——面向过程编程的C++之内存模型和命名空间
  6. DNSPod十问林洪祥:顶级带货主播,其实是数字人?
  7. Fragment 嵌套ViewPager(ViewPager里面有多个Fragment)
  8. 【从零开始学微服务】05.微服务的优势和不足
  9. ai写文章发头条能挣钱吗,在头条写文章赚钱
  10. Oracle 中的Top写法