【发布时间】:2021-12-07 21:49:16
【问题描述】:
我有返回 json 对象的 API,如下所示:
[
{"id":3,"delivery_from":"bsl","task_id":410169,"unit_job_id":224128,"completed_at":null,"deleted_at":null,"created_at":"2021-10-20T13:24:07.000000Z"},
{"id":3,"delivery_from":"bsl","task_id":410169,"unit_job_id":224128,"completed_at":null,"deleted_at":null,"created_at":"2021-10-20T13:24:07.000000Z"}
]
当我在浏览器控制台中打印 response.data 时,我看到所有对象参数都正常,但是当我将 response.data 放入本地数组 deliveryJobs: [] 时,我看到 task_id 属性未定义。我做错了什么?
<script>
import AxiosHandler from './mixins/AxiosHandler'
import axios from 'axios'
export default {
i18n: window.i18n,
mixins: [
AxiosHandler,
],
props: {
unitJobId: Number,
unitId: Number,
taskId: Number
},
data: () => ({
deliveryJobs: [],
unitJob: {}
}),
async created () {
this.getDeliveryJobs()
},
methods: {
getDeliveryJobs () {
axios
.get(`/api/v1/unitjobdelivery`, { params : { unit_job_id : this.unitJobId } })
.then(response => {
this.deliveryJobs = response.data
})
.catch(this.handleAxiosError)
}
}
}
</script>
【问题讨论】:
-
所以
deliveryJobs在这个组件中是本地的,但taskId作为道具接收。你确定你不会在任何地方变异吗?由于vue.js属性是反应性的,因此必须有一些操作导致您的对象中的task_id变得未定义。 -
嗨 Stiven,也许我不明白你的意思,但不要认为这是由于道具 taskId。我删除了道具,结果是一样的 - task_id 存在于 response.data 中,但是当我将 response.data 提供给 deliveryJobs [] 时它消失了
-
我的意思是,你必须在某个时刻改变
task_id,因为它不可能在不采取任何行动的情况下从数字变为未定义。 -
我不明白你的意思,我不知道是什么让对象属性未定义
标签: javascript arrays vue.js vuejs2 vue-component