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

Maximum call stack exceeded when using with custom components #7788

Closed
konstantinrachev opened this issue Mar 10, 2018 · 9 comments
Closed

Comments

@konstantinrachev
Copy link

Version

2.5.14

Reproduction link

https://jsfiddle.net/50wL7mdz/175425/

Steps to reproduce

  1. Including vue(v.2.5.14) and element.io styles and library.
  2. Opening new form.
  3. Opening new form element.
  4. Using custom date picker element.

What is expected?

It is expected to render a custom UI component for date picking.

What is actually happening?

The element is not being render as the console is filled with errors.

[Vue warn]: Error in render: "RangeError: Maximum call stack size exceeded", vue.js:597
RangeError: Maximum call stack size exceeded, vue.js:1745


The issue is related to the latest vue.js version as it is working as expected with all up to 2.5.13.

@posva
Copy link
Member

posva commented Mar 10, 2018

Duplicate of #7786

@posva posva marked this as a duplicate of #7786 Mar 10, 2018
@posva posva closed this as completed Mar 10, 2018
@dorianWB
Copy link

I still get this error, but I haven't got the time to put together a reproduction case right now. I know that it exists in 2.5.16 still and going back to 2.5.13 resolves the issue and the error looks like RangeError: Maximum call stack size exceeded at Function.[Symbol.hasInstance] (<anonymous>) at t (app.c84200b64a284b43c3fe.js:1) which t is the _traverse function and the error is in

function _traverse (val: any, seen: SimpleSet) {
let i, keys
const isA = Array.isArray(val)
if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {
return
}

@rowild
Copy link

rowild commented Aug 18, 2018

I also get this error, when document.querySelector() tries to bind DOM to a configuration element, that is set to store.config via a mutation. (The function is called from root element's mounted() ) ...

EDIT: happens only, when store is in strict mode.

@Darkside73
Copy link

Confirming this issue when store in a strict mode (using nuxt)

@sarkiroka
Copy link

sarkiroka commented Oct 10, 2018

Confirming too with v2.5.15 and v2.5.17

@kvnify
Copy link

kvnify commented Nov 15, 2018

I'm possibly seeing this as well. Can confirm that disabling strict mode in the vuex store seemed to fix the issue.

@konstantinrachev
Copy link
Author

Yeah, strict mode does seem to fix the issue.

@Gyanxie
Copy link

Gyanxie commented Jan 21, 2019

var selfObj= {};
selfObj.self = selfObj;
new Vue({
computed: { selftWatch: function get() { return selfObj; } } ,
watch: {
selftWatch: {
deep: true,
handler: function () { console.error('seccess run ')}
}
}
});
看了下 _traverse 方法,没有对 对象去重,应该记录所有对象的引用。

@sellingsolutions
Copy link

sellingsolutions commented Sep 8, 2019

I was brought to this issue by searching for:
Error in render: "RangeError: Maximum call stack size exceeded

However, it didn't have anything to do with the naming of components. It's probably related to what @Gyanxie posted above.

My offender was the code snippet below:

watch: {
    '$vuetify.breakpoint': {
      handler: function(newBreakpoint) {},
      deep: true,
      immediate: true
    }
}

This might prove useful to the next person that runs into this cryptic error message

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants