[Vue warn]: You may have an infinite update loop in a component render function.とは?
この記事からわかること
- [Vue警告]:コンポーネントのレンダリング関数に無限の更新ループがある可能性があります。の解決法
- [Vue warn]: You may have an infinite update loop in a component render function.の原因
- Vue.jsで起きたエラーの解決法
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
[Vue warn]: You may have an infinite update loop in a component render function. の原因とは?
Vue.jsでアプリを開発中以下のようなエラーが発生しました。
[Vue warn]: You may have an infinite update loop in a component render function.
[Vue警告]:コンポーネントのレンダリング関数に無限の更新ループがある可能性があります。
どうやらこれはレンダリング(コードをもとにWebページを構成する)が無限に行われる可能性がある際に起きるエラーのようです。
Vue.jsではv-for
で回してる中にdataを2回更新するような処理がある時に発生しました。
Vue.jsの仕様でv-forループ中にdataを2回更新できない
Vue.jsではv-forのループの中でdataを2回更新することができないようです。例えば以下のようにループされている数字が3の時だけthree
をtrue
にしたいとしても無限ループエラーとなってしまいます。(以下コードは何の意味もないコードですが...)
<template> <div> <div v-for="num in number" v-cloak> <p>{{ num }}</p> <p>{{ judge(num) }}</p> <p v-if="three">3だよ</p> </div> </div> </template> <script>
export default { data() { return { number:[1,2,3,4,5], three:false }; }, methods: { // ここがループ中に数回行われ2回threeの中身が入れ替わったタイミングでエラーになる judge(num) { if(num === 3){ this.three = true; }else{ this.three = false; } } }, }; </script>
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。