Element: [Bug Report] Multiple call stack exceeded messages

Created on 10 Mar 2018  ·  12Comments  ·  Source: ElemeFE/element

Element UI version

2.2.1

OS/Browsers version

Ubuntu Linux 16.04

Vue version

2.5.14

Reproduction Link

https://jsfiddle.net/mmx38qxw/542/

Steps to reproduce

In the browser console I'm getting lots of these errors:

vue.esm.js?65d7:591 [Vue warn]: Error in render: "RangeError: Maximum call stack size exceeded"

found in

---> <ElInput>
       <ElCascader>
         <ElFormItem>
           <ElCol>
             <ElForm>
               <ElCard>
                 <ElCol>
                   <ElRow>
                     <FinanceSettings> at /home/anthony/ownCloud/Projects/XolasUI/src/components/finance/FinanceSettings.vue
                       <App> at /home/anthony/ownCloud/Projects/XolasUI/src/App.vue
                         <Root>
warn @ vue.esm.js?65d7:591
logError @ vue.esm.js?65d7:1739
globalHandleError @ vue.esm.js?65d7:1734
handleError @ vue.esm.js?65d7:1723
Vue._render @ vue.esm.js?65d7:4542
updateComponent @ vue.esm.js?65d7:2790
...
flushSchedulerQueue @ vue.esm.js?65d7:2983
(anonymous) @ vue.esm.js?65d7:1839
flushCallbacks @ vue.esm.js?65d7:1760
vue.esm.js?65d7:1743 RangeError: Maximum call stack size exceeded
    at _traverse (vue.esm.js?65d7:1977)
...
    at _traverse (vue.esm.js?65d7:1992)
logError @ vue.esm.js?65d7:1743
globalHandleError @ vue.esm.js?65d7:1734
handleError @ vue.esm.js?65d7:1723
Vue._render @ vue.esm.js?65d7:4542
...
flushSchedulerQueue @ vue.esm.js?65d7:2983
(anonymous) @ vue.esm.js?65d7:1839
flushCallbacks @ vue.esm.js?65d7:1760

What is Expected?

I upgraded from ui-elements 2.0.5 to the current release 2.21 and these errors appeared.

The previous version I was using was ui-elements 2.0.5 and vue 2.4.2. No changes at all to the code. Previously no issues at all.

I've deleted down completely my node_modules directory and reinstalled. Same issue.

I've tried using both npm install and yarn.

package.json:

{
  "name": "xolas-towers",
  "version": "1.0.0",
  "description": "Tower Asset Management",
  "author": "xolas.io",
  "private": true,
  "scripts": {
    "dev": "node build/dev-server.js",
    "start": "node build/dev-server.js",
    "build": "node build/build.js",
    "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
    "e2e": "node test/e2e/runner.js",
    "test": "npm run unit && npm run e2e",
    "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs"
  },
  "dependencies": {
    "accounting": "^0.4.1",
    "awesome-mask": "^0.5.4",
    "axios": "^0.15.3",
    "chartist": "^0.10.1",
    "chartist-plugin-legend": "^0.6.2",
    "chartist-plugin-pointlabels": "^0.0.5",
    "chartist-plugin-tooltips": "^0.0.17",
    "element-ui": "^2.0.5",
    "jssha": "^2.3.1",
    "moment": "^2.18.1",
    "v-chartist": "^0.1.4",
    "vue": "^2.5.14",
    "vue-awesome": "^2.3.1",
    "vue-config-manager": "^0.2.2",
    "vue-dragula": "^1.3.1",
    "vue-events": "^3.0.1",
    "vue-form-wizard": "^0.6.3",
    "vue-full-calendar": "^2.0.4",
    "vue-i18n": "^5.0.3",
    "vue-particles": "^1.0.9",
    "vue-progressive-image": "^2.1.2",
    "vue-router": "^2.3.0",
    "vue-wysiwyg": "^1.2.1",
    "vue2-google-maps": "^0.7.5",
    "vueleaflet": "^2.1.1",
    "vuency": "^0.0.95",
    "vuetable-2": "^1.3.1"
  },
  "devDependencies": {
    "autoprefixer": "^6.7.2",
    "babel-core": "^6.22.1",
    "babel-eslint": "^7.1.1",
    "babel-loader": "^6.2.10",
    "babel-plugin-component": "^0.9.1",
    "babel-plugin-istanbul": "^3.1.2",
    "babel-plugin-transform-runtime": "^6.22.0",
    "babel-preset-env": "^1.6.0",
    "babel-preset-es2015": "^6.24.0",
    "babel-preset-stage-2": "^6.22.0",
    "babel-register": "^6.22.0",
    "chai": "^3.5.0",
    "chalk": "^1.1.3",
    "chromedriver": "^2.33.1",
    "connect-history-api-fallback": "^1.3.0",
    "copy-webpack-plugin": "^4.0.1",
    "cross-env": "^3.1.4",
    "cross-spawn": "^5.0.1",
    "css-loader": "^0.28.1",
    "element-theme": "^2.0.1",
    "element-theme-chalk": "^2.0.5",
    "eslint": "^3.14.1",
    "eslint-config-standard": "^6.2.1",
    "eslint-friendly-formatter": "^2.0.7",
    "eslint-loader": "^1.6.1",
    "eslint-plugin-html": "^2.0.0",
    "eslint-plugin-promise": "^3.4.0",
    "eslint-plugin-standard": "^2.0.1",
    "eventsource-polyfill": "^0.9.6",
    "express": "^4.14.1",
    "extract-text-webpack-plugin": "^2.0.0",
    "file-loader": "^0.10.0",
    "friendly-errors-webpack-plugin": "^1.1.3",
    "html-webpack-plugin": "^2.28.0",
    "http-proxy-middleware": "^0.17.3",
    "inject-loader": "^2.0.1",
    "karma": "^1.4.1",
    "karma-coverage": "^1.1.1",
    "karma-mocha": "^1.3.0",
    "karma-phantomjs-launcher": "^1.0.2",
    "karma-phantomjs-shim": "^1.4.0",
    "karma-sinon-chai": "^1.2.4",
    "karma-sourcemap-loader": "^0.3.7",
    "karma-spec-reporter": "0.0.26",
    "karma-webpack": "^2.0.2",
    "lolex": "^1.5.2",
    "mocha": "^3.2.0",
    "nightwatch": "^0.9.12",
    "node-sass": "^4.5.3",
    "opn": "^4.0.2",
    "optimize-css-assets-webpack-plugin": "^1.3.0",
    "ora": "^1.1.0",
    "phantomjs-prebuilt": "^2.1.14",
    "rimraf": "^2.6.0",
    "sass-loader": "^6.0.3",
    "selenium-server": "^3.0.1",
    "semver": "^5.3.0",
    "shelljs": "^0.7.6",
    "sinon": "^2.1.0",
    "sinon-chai": "^2.8.0",
    "url-loader": "^0.5.8",
    "vue-loader": "^11.1.4",
    "vue-template-compiler": "^2.2.4",
    "webpack": "^2.2.1",
    "webpack-bundle-analyzer": "^2.2.1",
    "webpack-dev-middleware": "^1.10.0",
    "webpack-hot-middleware": "^2.16.1",
    "webpack-merge": "^2.6.1"
  },
  "engines": {
    "node": ">= 4.0.0",
    "npm": ">= 3.0.0"
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not ie <= 8"
  ]
}

What is actually happening?

See above.

The code in the fiddle is just one example- The same error is happening on many other parts of the system.

The same app code base has been working fine until this recent upgrade.

All 12 comments

So it looks like this is related to #10094 that I just posted. I am getting the same RangeError when using the <el-pagination> with the sizes select box.

Error in render: "RangeError: Maximum call stack size exceeded"
Found in: <ElInput><ElSelect><Sizes><ElPagination>

I just tried downgrading to 2.0.5 and then still get the error.

Thanks @ryantbrown . I've got the same issue for many components, I don't use el-pagination. At least I'm not alone in this and probably not crazy :-P

@adavie1 Ya its definitely an issue but downgrading to Vue 2.5.13 fixes the issue on my end. Vue 2.5.14 was released a few hours ago. I am willing to bet downgrading will fix yours as well.

@ryantbrown Perfect! I also had to downgrade vue-template-compiler. That is a good enough workaround for now. Thanks!

I am also getting the same error, tried downgrade vue, vuex, element, no luck so far

Yup, getting this error using vue 2.5.14 and vue-template-compiler 2.5.14. Have reverted vue and vue-template-compiler back down to 2.5.13, and am not receiving these errors anymore.

So I have boiled down to this: https://jsfiddle.net/mmx38qxw/568/ . Might have something to do with v-bind:class. Here's the issue: https://github.com/vuejs/vue/issues/7786 .

This affects everything that has an <el-input> in it, as long as that <el-input> has one of the four slots we provide. <el-cascader>, <el-select>, <el-pagination>, <el-date-picker>...

yes, vue.js rev 2.5.14 will cause stack exceeded issue, use vue.js rev 2.5.13 will fix this issue

Vue 2.5.15 fixes this.

升级vue到2.5.15也出现这个问题啊

error: el-date-picker Maximum call stack size exceeded
fixed: update to the latest Vue version 2.5.21 and fixed it

Was this page helpful?
0 / 5 - 0 ratings