-
-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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 recursive updates exceeded in component in 3.4.15 #10214
Comments
Got this issue earlier today when updating to 3.4.15. Checking at where this is happening, I don't think I have any side effects from computed values but I do have a reference to an external class which might be causing this. Checking if I can build a repro for this. |
So, please ignore my previous comment. I fixed the issue on my side. Was actually a simple fix once I understood what was happening. The only thing I'd say is that even though this is the correct behaviour, this breaks previous behaviour so it should be marked as a breaking change or pushed back to a major release. |
@johnsoncodehk I think this is also a question about the |
I've got the same issue which was not present within 3.4.14. Here is simple replication of how I've managed generate the error along with a work around. I hope this help! I believe this is linked to #10114 |
Having a similar issue in a project using with vue-openlayers (I'd like to add a repo to showcase the issue, but the project is quite large and it's tough to add everything), but not with v-for. Just in a prop passed as a ref. If it helps, I've tried with some versions with these results: |
I just tried 3.4.16 and I'm getting the same "Maximum recursive updates eceeded". |
you can commit a new issue and provide a minimal reproduction since this issue is closed |
Confirmed that the fix worked fine for my case. |
Vue version
3.4.15
Link to minimal reproduction
https://play.vuejs.org/#eNqNU01v2kAQ/SsjXwA12I1oLxRQmiiV2kOLmh59MfZATL0f2p0lRMj/vbO7QI3bRLl5Z+bNvPfGc0g+a53uHCbTZGZLU2sCi+T0Ipe10MoQHKBUQjvCClpYGyVgwPWDTl6jsUp+KUpS5vlclGbLEB98ymUuSyUtgTZKW5hDheta4tK/hodcAshC4BTCJwA9a348kKnl5iqGGFC4hqYwuFUrng3Q5rIddVuHYdz7xHY4HMF8cUluGAikftrIg2dZ1Mxq+UEodFMQ8gtgVtW7xeEkLkDSXdE4hLadZT7p4R1IcpVER8ai0OmWQexpUJQfEzZPzhrzhE307zx5JNJ2mmVlJRlWYVPvTCqRMqlFdsNlmXGSaoHjSombSfohvf7IBCx14ylaMV4Z9WTRcJc8ORoX5mQc3KEZG5QVGjRvnduDXczu5f6Zf9oR20KWV7SuNz1T/KLqBs0PTTWv8MKcomnU07cQI+PwLKZ8xPL3f+Jbu4+ilgYDs44BVJgNUkzfP3zHPX+fk0JVrjku4oXkT7SqcZ5jLLt1smLanbrA9mvYMf+yv+z9nlDakyhPNLgR6sNC7l6R/pfuJJ10XIzXxB6yg+fTM7juXeXlPdwp/kX4KLhu+D6eC+4Ddu1k6Yf3DiScRiQT+6jVlvFHdvFMfbNQFwS1oSt0Bx4P5d0crjkJDCBnpG/FT5aTtH8AoE2GOg==
Steps to reproduce
Open the link and see the maximum recursion error
What is expected?
No maximum recursion error
What is actually happening?
Maximum recursion error
System Info
Any additional comments?
I understand that computed properties should not have side effects, and this example does have a side effect, however there are some cases where classes/factories might modify some global reactive state for tracking purposes. In
3.4.14
and before this example works, but this breaks in3.4.15
.In an ideal world, obviously nobody would ever modify anything inside of a getter, making all getters "pure" functions. I don't know if this is necessarily a realistic requirement in the real world, especially if all previous versions of Vue 3 (whether intentionally or unintentionally) supported this.
I believe other people are possibly running into this issue:
#10210
#10172
#10158
I'm pretty confident that this PR introduced this behavior: #10123
The text was updated successfully, but these errors were encountered: