Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Uncaught TypeError: Cannot read property 'componentProto' of undefined #8237

Open
hao-li opened this issue Dec 10, 2020 · 8 comments
Open

Uncaught TypeError: Cannot read property 'componentProto' of undefined #8237

hao-li opened this issue Dec 10, 2020 · 8 comments
Assignees
Labels
F-react Framework - React T-swan Target - 编译到百度小程序 V-2 Version - 2.x

Comments

@hao-li
Copy link

hao-li commented Dec 10, 2020

相关平台

百度小程序

复现仓库

https://github.com/hao-li/taro-problem-sample
小程序基础库: 3.250.12
使用框架: React

复现步骤

  1. git clone [email protected]:hao-li/taro-problem-sample.git
  2. yarn
  3. yarn build:swan
  4. 使用百度开发者工具(3.21.2)加载本项目
  5. 打开 console 查看错误信息
    点击进入百度小程序问题页

期望结果

正常显示页面,console中无错误

实际结果

页面白屏,console 中报错

index.js:1 Uncaught TypeError: Cannot read property 'componentProto' of undefined
    at e (index.js:1)
    at e (index.js:1)
    at Object.getCustomComponentsData (index.js:1)
    at Object.sendInitData (index.js:1)
    at success (index.js:1)
    at o.<anonymous> (index.js:1)
    at o.value (index.js:1)
    at index.js:1
    at Array.forEach (<anonymous>)
    at o.value (index.js:1)
e @ index.js:1
e @ index.js:1
getCustomComponentsData @ index.js:1
sendInitData @ index.js:1
success @ index.js:1
(anonymous) @ index.js:1
value @ index.js:1
(anonymous) @ index.js:1
value @ index.js:1
value @ index.js:1
(anonymous) @ index.js:1
(anonymous) @ index.js:1
(anonymous) @ index.js:1
(anonymous) @ master-worker.js:1
(anonymous) @ master-worker.js:1
(anonymous) @ master-worker.js:1
(anonymous) @ master-worker.js:1
onDispatchEvent @ master-worker.js:1
(anonymous) @ master-worker.js:1
(anonymous) @ master-worker.js:1

环境信息

👽 Taro v2.2.16


  Taro CLI 2.2.16 environment info:
    System:
      OS: macOS 10.15.7
      Shell: 5.7.1 - /bin/zsh
    Binaries:
      Node: 12.16.1 - /usr/local/bin/node
      Yarn: 1.17.3 - /usr/local/bin/yarn
      npm: 6.13.4 - /usr/local/bin/npm
    npmPackages:
      @tarojs/components: 2.2.16 => 2.2.16
      @tarojs/mini-runner: 2.2.16 => 2.2.16
      @tarojs/plugin-babel: 2.2.16 => 2.2.16
      @tarojs/plugin-csso: 2.2.16 => 2.2.16
      @tarojs/plugin-sass: 2.2.16 => 2.2.16
      @tarojs/router: 2.2.16 => 2.2.16
      @tarojs/taro: 2.2.16 => 2.2.16
      @tarojs/taro-alipay: 2.2.16 => 2.2.16
      @tarojs/taro-h5: 2.2.16 => 2.2.16
      @tarojs/taro-swan: 2.2.16 => 2.2.16
      @tarojs/taro-tt: 2.2.16 => 2.2.16
      @tarojs/taro-weapp: 2.2.16 => 2.2.16
      @tarojs/webpack-runner: 2.2.16 => 2.2.16
      eslint-config-taro: 2.2.16 => 2.2.16
      eslint-plugin-taro: 2.2.16 => 2.2.16
      nerv-devtools: ^1.5.7 => 1.5.7
      nervjs: ^1.5.7 => 1.5.7
      stylelint-config-taro-rn: 2.2.16 => 2.2.16
      stylelint-taro-rn: 2.2.16 => 2.2.16
      taro-ui: ^2.1.0 => 2.3.1

补充信息

  1. dev 正常 build 有错
  2. 貌似和 taro-ui 及 taro 版本无关,试过新版 taro-ui (2.3.4,2.2.4)及旧版 taro (2.2.6)均由此错误
@taro-bot2 taro-bot2 bot added F-react Framework - React T-swan Target - 编译到百度小程序 V-2 Version - 2.x labels Dec 10, 2020
@luckyadam luckyadam self-assigned this Dec 10, 2020
@hao-li
Copy link
Author

hao-li commented Dec 14, 2020

@luckyadam 请问大概计划什么时候发布修复版本?

@hao-li
Copy link
Author

hao-li commented Dec 24, 2020

百度开发者工具新版本 3.22.1 中一样出现这个问题

@paulloo
Copy link

paulloo commented Mar 16, 2021

复现仓库,反复调试了下,发现还真是taro-ui组件内部的问题。注掉所有taro-ui引入的组件,就可以正常访问了。具体什么原因还没有找到,只知道最简单的一个组件引入,都是有问题的。 @hao-li @luckyadam

@paulloo
Copy link

paulloo commented Mar 16, 2021

复现仓库,反复调试了下,发现还真是taro-ui组件内部的问题。注掉所有taro-ui引入的组件,就可以正常访问了。具体什么原因还没有找到,只知道最简单的一个组件引入,都是有问题的。 @hao-li @luckyadam

image

@hao-li
Copy link
Author

hao-li commented Mar 19, 2021

@paulloo 这么久了还帮忙解析非常感谢!


@luckyadam 现在情况比较尴尬,升级 Taro 3 则 taro-ui 更不兼容
发现百度小程序中每个 <View>Sth.</View> 都被生成为类似

<swan-template data-origin-name="tmpl_0_container">
  <swan-template data-origin-name="tmpl_0_pure-view">
    <swan-view>Sth.</swan-view>
  </swan-template>
</swan-template>

也就是每个 view 外都套了两层 swan-template
导致所有 flex 布局中 item 成了 container 的重孙子元素,所以样式出错

在微信小程序中并不存在这个问题

不升级,由于这个问题 2 也无法使用(试了最新的 2.2.17 也一样)

所以我们小程序现在已经没法发布版本了,不管 taro 2 还是 3,不知道能不能处理下,谢谢

@paulloo
Copy link

paulloo commented Mar 22, 2021

@paulloo 这么久了还帮忙解析非常感谢!

@luckyadam 现在情况比较尴尬,升级 Taro 3 则 taro-ui 更不兼容
发现百度小程序中每个 <View>Sth.</View> 都被生成为类似

<swan-template data-origin-name="tmpl_0_container">
  <swan-template data-origin-name="tmpl_0_pure-view">
    <swan-view>Sth.</swan-view>
  </swan-template>
</swan-template>

也就是每个 view 外都套了两层 swan-template
导致所有 flex 布局中 item 成了 container 的重孙子元素,所以样式出错

在微信小程序中并不存在这个问题

不升级,由于这个问题 2 也无法使用(试了最新的 2.2.17 也一样)

所以我们小程序现在已经没法发布版本了,不管 taro 2 还是 3,不知道能不能处理下,谢谢

客气了,我也遇到了同样的问题。目前还是没有解决方案吗?

@hao-li
Copy link
Author

hao-li commented Mar 22, 2021

@paulloo 是的

据说 Taro 3 是因为使用 去渲染,但百度的 template 会渲染为一个真实的节点,所以 flex 会失效。
Taro 团队反馈给百度后,等着百度处理也等了好久了,估计也不差再多等一段时间

Taro 2 已经是自生自灭的节奏,应该也不会在这上面花功夫了。

有个代价很大万不得已时可以考虑的解决方法的就是退回 Taro 2,更换 UI 框架避开这两个问题。

@paulloo
Copy link

paulloo commented Mar 22, 2021

@paulloo 是的

据说 Taro 3 是因为使用 去渲染,但百度的 template 会渲染为一个真实的节点,所以 flex 会失效。
Taro 团队反馈给百度后,等着百度处理也等了好久了,估计也不差再多等一段时间

Taro 2 已经是自生自灭的节奏,应该也不会在这上面花功夫了。

有个代价很大万不得已时可以考虑的解决方法的就是退回 Taro 2,更换 UI 框架避开这两个问题。

好的,谢谢!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
F-react Framework - React T-swan Target - 编译到百度小程序 V-2 Version - 2.x
Projects
None yet
Development

No branches or pull requests

3 participants