router
orderDetail/123
actions
get(context, data) {
return new Promise((resolve, reject) => {
getDetail(data).then(res => {
context.commit('SET_DETAIL', res.data);
resolve(res);
}).catch(err => {
reject(err);
});
});
},
確定有取到「res.data」,也有順利 SET_DETAIL
SET_DETAIL: (state, data) => {
state.orderDetail = data;
},
const order = {
namespaced: true,
state: {
orderDetail: '',
}
}
mutations
SET_DETAIL: (state, data) => {
state.orderDetail = data;
},
但卻有個詭異問題
created() {
this.$store.dispatch('a/get', this.id)
console.log(this.id) // 有取到 123
console.log(this.row) // 沒有取到!?!?
},
computed: {
id() {
return this.$route.params.id
},
row() {
return this.$store.state.order.orderDetail // 格式沒問題
},
}
但為什麼無法取到 this.row ⋯⋯
甚至有時候會取得到?!但就感覺慢半拍!
我不知道你說的慢是有多慢
大概跟我感覺薪水總是不夠用一樣。XD
就先是會得到 undefined 但其實再過一下就會有資料
我不知道是不是API回來的時間有點久,導致前端就先渲染了,然後會說某個欄位找不到值,例如「Error in render: "TypeError: Cannot read property 'coverPic' of undefined"」
但其實看畫面是有 coverPic 的
getDetail 就是~
我是直接 {{ this.row.coverPic }} 顯示,但他仍然會出現 undefined 錯誤,但其實看畫面上是有值的,加上API返回的資料也確定有
我的問題好像是這個呢⋯⋯
https://www.cnblogs.com/muou2125/p/10727770.html
但還是報錯誤⋯⋯
我是在開頭的 div 加上 v-if="row"