ecomfe / echarts-for-weixin在taro 3.x版本用不了

报错

t.addEventListener is not a function

原因

  1. // taro 3.2.16是false,3.3.2是true
  2. // 第三方库可能根据 window 及其属性判断是浏览器环境还是小程序环境,
  3. // 但 Taro3 的目标就是在小程序环境模拟浏览器环境。
  4. // 所以针对这种情况,只能进行 hack 了,例如使用 definePlugin、使用 loader 处理源码等。
  5. // 源码中的环境判断
  6. var pv = typeof window !== 'undefined' && !!window.addEventListener;
  7. // 源码中的方法(报错位置)
  8. function Ae(t,e,n,i){
  9. pv?t.addEventListener(e,n,i):t.attachEvent("on"+e,n)
  10. }

解决方法

修改源码解决bug

  1. // 我们是小程序开发,既然无法判断,那么直接将环境设置为小程序即可
  2. var pv = false