uni-app Cannot read property '__call_hook' of undefined,不确定是不是bug

uni-app Cannot read property ‘__call_hook’ of undefined,不确定是不是bug

示例代码:

[JS Framework] Failed to execute the callback function:

TypeError: Cannot read property 'call_hook' of undefined
17:28:21.931 reportJSException >>>> exception function:WEEX_CALL_JAVASCRIPT, exception:JavaScript execute error!Uncaught TypeError: Cannot read property '__call_hook' of undefined
at  (uni-jsframework.js:1:195715)
at  (uni-jsframework.js:1:195980)
at vs (uni-jsframework.js:1:126240)
at switchTab (uni-jsframework.js:1:195123)
at  (uni-jsframework.js:1:94721)
at X (uni-jsframework.js:1:57741)
at cv.<computed>.uv.<computed> (uni-jsframework.js:1:286546)
at  (uni-jsframework.js:1:294269)
at  (uni-jsframework.js:1:130858)
at CallbackManager.consume (uni-jsframework.js:1:1414)
17:28:22.936 [JS Framework] Failed to execute the callback function:
TypeError: Cannot read property 'call_hook' of undefined

操作步骤:

有些时候是因为页面操作过快出现。有时候无故出来

预期结果:

正常加载页面

实际结果:

有些时候加载不出来

bug描述:

华为p20 鸿蒙系统。不确定是不是华为的问题,在app-nvue页面,切换底部tabBar的时候,有些时候是因为页面操作过快出现。有时候无故出来,出现的几率很频繁,有些时候正常。但是就是找不到原因。然后就出现白屏,加载不出任何东西。我试了下连created页面都没有进去。不确定这个bug还是写代码的原因导致的。如果是写代码导致的应该报我这边的页面的报错。请问一下有遇到过这种类似的问题吗?大概是什么原因到导致的,就是找不到原因!


| 信息类别       | 详细信息           |
|----------------|--------------------|
| 产品分类       | uniapp/App         |
| PC开发环境     | Windows            |
| PC开发环境版本 | 10                 |
| HBuilderX类型  | 正式               |
| HBuilderX版本  | 4.06               |
| 手机系统       | Android            |
| 手机系统版本   | Android 10         |
| 手机厂商       | 华为               |
| 手机机型       | p20 鸿蒙系统       |
| 页面类型       | vue                |
| vue版本        | vue2               |
| 打包方式       | 云端               |
| 项目创建方式   | HBuilderX          |

更多关于uni-app Cannot read property '__call_hook' of undefined,不确定是不是bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

同样遇到了这个问题

更多关于uni-app Cannot read property '__call_hook' of undefined,不确定是不是bug的实战教程也可以访问 https://www.itying.com/category-93-b0.html


uni-app 开发中,遇到 Cannot read property '__call_hook' of undefined 的错误,通常是由于组件或页面的生命周期钩子函数调用时出现了问题。以下是一些可能的原因和解决方法:

1. 组件或页面未正确初始化

  • 确保你的组件或页面已经正确导入和注册。
  • 检查是否在 pages.json 中正确配置了页面路由。

2. 生命周期钩子函数未正确定义

  • 确保生命周期钩子函数(如 onLoad, onShow, onReady 等)在组件或页面中正确定义。
  • 例如:
    export default {
      onLoad() {
        console.log('Page loaded');
      },
      onShow() {
        console.log('Page shown');
      }
    }
    

3. 异步操作导致的问题

  • 如果在生命周期钩子函数中进行了异步操作(如网络请求),确保在异步操作完成之前,组件或页面没有被销毁或卸载。
  • 可以使用 Promiseasync/await 来处理异步操作。

4. 组件或页面的上下文丢失

  • 确保在组件或页面中使用的 this 指向正确的上下文。如果使用了箭头函数或 bind,可能会导致 this 指向错误。
  • 例如:
    export default {
      methods: {
        fetchData() {
          // 确保这里的 this 指向组件实例
          this.$http.get('/api/data').then(response => {
            this.data = response.data;
          });
        }
      }
    }
    

5. uni-app 版本问题

  • 有时,某些版本的 uni-app 可能存在已知的 bug。可以尝试更新到最新版本,或者查看官方文档和社区中是否有相关的 issue。

6. 自定义组件的问题

  • 如果使用了自定义组件,确保组件已经正确注册,并且在父组件中正确使用。
  • 例如:
    import MyComponent from '@/components/MyComponent.vue';
    
    export default {
      components: {
        MyComponent
      }
    }
回到顶部