vue實(shí)現(xiàn)動(dòng)態(tài)給data函數(shù)中的屬性賦值
vue動(dòng)態(tài)給data函數(shù)中的屬性賦值
1.首先創(chuàng)建一個(gè)監(jiān)視器,用來(lái)監(jiān)視相關(guān)的屬性
2.當(dāng)這個(gè)相關(guān)的屬性被修改的時(shí)候,在監(jiān)視器中的handler函數(shù)中寫(xiě)處理邏輯即可
vue給data中的數(shù)據(jù)賦值報(bào)錯(cuò)
TypeError: Cannot set property ‘tableData‘ of undefined
問(wèn)題背景
最近剛?cè)腴T(mén)vue,有個(gè)典型的場(chǎng)景,也是簡(jiǎn)單的坑。就是需要通過(guò)axios請(qǐng)求數(shù)據(jù)之后,將數(shù)據(jù)賦予到data中的tableData,而table組件會(huì)根據(jù)tableData雙向綁定自動(dòng)渲染。
但是當(dāng)我賦值的時(shí)候TypeError: Cannot set property 'tableData' of undefined。究竟怎么回事呢。
分析
代碼看起來(lái),好像并沒(méi)有什么毛病。。。
export default { data() { return { total: 0, //默認(rèn)數(shù)據(jù)總數(shù) searchParam:{ limit: 10, //每頁(yè)的數(shù)據(jù)條數(shù) page: 1, //默認(rèn)開(kāi)始頁(yè)面 certNumber: "", certLevel: "", certCompanyName: "", }, tableData: [] }; }, onSearch: function(){ axios.post('/api/certCompany/list2',JSON.stringify(this.searchParam)) .then(function (response) { console.log(response); this.tableData=response.data.data; this.total=response.data.count; }) .catch(function (error) { console.log(error); }); } };
然而問(wèn)題是出來(lái)了this.tableData因?yàn)橛昧?function 函數(shù) 的原因,在函數(shù)里面,this是指向函數(shù)本身,已經(jīng)不是外部的默認(rèn)this了
解決方案
使用一個(gè) that 指向 外部的this ,然后調(diào)用 that.tableData ,輕松搞定。
onSearch: function(){ const that=this; //用that解決函數(shù)內(nèi)部this指向問(wèn)題 zhengkai.blog.csdn.net axios.post('/api/certCompany/list2',JSON.stringify(this.searchParam)) .then(function (response) { console.log(response); that.tableData=response.data.data; that.total=response.data.count; }) .catch(function (error) { console.log(error); }); }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
利用vue + koa2 + mockjs模擬數(shù)據(jù)的方法教程
這篇文章主要給大家介紹了關(guān)于利用vue + koa2 + mockjs模擬數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11啟動(dòng)myvue報(bào)錯(cuò)npm?ERR!?code?ENOENT?npm?ERR!?syscall?open的解
這篇文章主要介紹了啟動(dòng)myvue報(bào)錯(cuò)npm?ERR!?code?ENOENT?npm?ERR!?syscall?open的解決辦法,文中給出了詳細(xì)的解決方法,并通過(guò)圖文結(jié)合的方式介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03vue實(shí)現(xiàn)盒子內(nèi)拖動(dòng)方塊移動(dòng)的示例代碼
這篇文章主要給大家介紹了如何通過(guò)vue實(shí)現(xiàn)盒子內(nèi)拖動(dòng)方塊移動(dòng),文章通過(guò)代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以參考閱讀本文2023-08-08聊聊Vue 中 title 的動(dòng)態(tài)修改問(wèn)題
這篇文章主要介紹了 Vue 中 title 的動(dòng)態(tài)修改問(wèn)題,文中通過(guò)兩種方案給大家介紹了title的傳遞問(wèn)題 ,需要的朋友可以參考下2019-06-06vuedraggable拖拽到目標(biāo)區(qū)域?qū)崿F(xiàn)過(guò)程解析
這篇文章主要為大家介紹了vuedraggable拖拽到目標(biāo)區(qū)域?qū)崿F(xiàn)過(guò)程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06