タイトルの通り、無限ループが起きてしまいます。
解決したい事: 原因を特定したいです。
現状: follower_usersを取得するためにdispatchを実行すると無限ループが走ってしまいます
vue
1<div v-for="follower_user in follower_users" :key="follower_user.id"> 2 <input type="hidden" name="_token" v-bind:value="csrf" v-show="check_user(follower_user.id)"> 3 <div v-if="check"> 4 <button type="submit" class="mt-2 ml-2 btn btn-outline-primary btn-sm" style="height: 1.7rem;">Unfollow</button> 5 </div> 6 <div v-else> 7 <button type="submit" class="mt-2 ml-2 btn btn-outline-primary btn-sm" style="height: 1.7rem;">Follow</button> 8 </div> 9</div> 10 11...省略 12 13 data() { 14 return { 15 check: false 16 } 17 }, 18 props: ['user_id', 'login_user_id', 'csrf'], 19 computed: { 20 ...mapState("follow",['follower_users','url']), 21 }, 22 created() { 23 this.$store.dispatch('follow/get_follower_list', this.user_id) 24 }, 25methods: { 26 check_user(id) { 27 var array = ["/user/", id, "/follower_check"]; 28 // パスをjoinで結合 29 const t = array.join('') 30 axios.get(t).then(res => { 31 console.log(res.data) 32 if(res.data == 1) { 33 this.check = true 34 } else { 35 this.check = false 36 } 37 }).catch(function(error) { 38 console.log(error) 39 }) 40 } 41}
store
1mutations: { 2 follower_list(state, id) { 3 console.log('testteste') 4 const array = ["/user/", id, "/follower_list"]; 5 const t = array.join('') 6 axios.get(t).then(res => { 7 state.follower_users = res.data 8 }).catch(function(error) { 9 console.log(error) 10 }) 11 }, 12 }, 13actions: { 14 get_follower_list({commit}, id) { 15 commit('follower_list', id) 16 }, 17}
controller
1 public function follower_list(User $user) 2 { 3 $follower_list = $user->followers()->get(); 4 return $follower_list; 5 }
試した事
dispatchではなくcommitで呼び出してみましたが、変わらずでした。
確認した事
コントローラーで値は取れているか? => 取れてました。
どこに原因があるのかわからずにいます。
お分かりになる方いましたら、教えていただきたいです。
よろしくお願いします。
あなたの回答
tips
プレビュー