Получение 500 по маршруту УДАЛИТЬ из-за [Vue warn]: Избегайте использования в качестве ключа непримитивного значения, вместо этого используйте строковое / числовое значение - PullRequest
0 голосов
/ 24 апреля 2019

У меня два компонента работают одинаково для добавления, обновления, удаления, ... но у меня эта ключевая проблема с удалением только в этом компоненте.Я могу добавить и обновить классную комнату, но не могу удалить.Я продолжаю видеть эту ошибку:

DELETE http://127.0.0.1:8000/classrooms/4 500 (Internal Server Error)
dispatchXhrRequest @ app.js:285
xhrAdapter @ app.js:119
dispatchRequest @ app.js:724
Promise.then (async)
request @ app.js:531
Axios.(anonymous function) @ app.js:541
wrap @ app.js:984
deleteClassroom @ app.js:1913
click @ app.js:37971
invokeWithErrorHandling @ app.js:40588
invoker @ app.js:40913
original._wrapper @ app.js:46266
09:49:27.489 app.js:39359 [Vue warn]: Avoid using non-primitive value as key, use string/number value instead.

found in

---> <ClassroomComponent> at resources/js/components/ClassroomComponent.vue
       <Root>
warn @ app.js:39359
_createElement @ app.js:42115
createElement @ app.js:42085
vm._c @ app.js:42216
(anonymous) @ app.js:38011
renderList @ app.js:41362
render @ app.js:38010
Vue._render @ app.js:42270
updateComponent @ app.js:42786
get @ app.js:43197
run @ app.js:43272
flushSchedulerQueue @ app.js:43030
(anonymous) @ app.js:40714
flushCallbacks @ app.js:40640
Promise.then (async)
timerFunc @ app.js:40667
nextTick @ app.js:40724
queueWatcher @ app.js:43122
update @ app.js:43262
notify @ app.js:39470
mutator @ app.js:39622
(anonymous) @ app.js:1918
Promise.catch (async)
deleteClassroom @ app.js:1917
click @ app.js:37971
invokeWithErrorHandling @ app.js:40588
invoker @ app.js:40913
original._wrapper @ app.js:46266
09:49:27.491 

Мой ClassroomComponent.vue:

<template>
...
<table class="table" v-if="classrooms">
            <thead>
            <tr>
                <th>id</th>
                <th>Classroom number</th>
            </tr>
            </thead>
            <tbody>
            <tr v-for="(classroom, index) in classrooms" :key="index">
                <td>{{classroom.id}}</td>
                <td>{{classroom.description}}</td>
                <td><button @click="loadUpdateClassroomModal(index)" class="btn btn-info">Edit</button></td>
                <td><button @click="deleteClassroom(index)" class="btn btn-danger">Delete</button></td>
            </tr>
            </tbody>
        </table>
...
</template>
<script>
export default {
    data(){
        return {
            classroom:{
                description: ''
            },
            classrooms: [],
            uri: 'http://127.0.0.1:8000/classrooms/',
            errors: [],
            new_update_classroom: [],
            toastr: toastr.options = {"positionClass": "toast-top-full-width"}

        }
    },

    methods: {

        ...

        deleteClassroom(index){
            let confirmBox = confirm("Do you really want to delete this?");

            if(confirmBox == true){
                axios.delete(this.uri + this.classrooms[index].id)
                    .then(response=>{
                        this.$delete(this.classrooms, index);
                        toastr.success(response.data.message);
                    }).catch(error=>{
                        this.errors.push(error);
                });
            }
        },

        loadClassrooms(){
            axios.get(this.uri).then(response=>{
                this.classrooms = response.data.classrooms;
            });
        },

        resetClassroomData(){
            this.classroom.description = '';
        }

    },

    mounted(){
        this.loadClassrooms();
    }
}
</script>
<>

Как я уже сказал, у меня есть другой компонент, полностью работающий с той же структурой.Я не понимаюЯ попытался найти какой-то ответ здесь: [Vue warn]: избегайте использования не примитивного значения в качестве ключа, используйте вместо него строковое / числовое значение , избегайте использования не примитивного значения в качестве ключа, используйте строку /числовое значение вместов VueJS и т. д., и ничто не объясняет мне это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...