vue3中reactive的對(duì)象清空所引發(fā)的問(wèn)題解決方案(清空不了和清空之后再去賦值就賦值不了)
let filters = reactive({ status:'' });
我想清空f(shuō)ilters的內(nèi)容。給接口傳參的時(shí)候保證filters是個(gè)空對(duì)象。
所以使用filters={}。
頁(yè)面上的確清空了。但是發(fā)現(xiàn)賦值一直沒(méi)辦法成功。我明明有下拉。點(diǎn)擊某個(gè)下拉選項(xiàng)確一直選不中。沒(méi)辦法回填了。
因?yàn)閞eactive定義的變量重新賦值相當(dāng)于重新創(chuàng)建了一個(gè)新的變量,就會(huì)失去響應(yīng)式。
看網(wǎng)上寫(xiě)法還有Object.assign({},filters)。這樣的頁(yè)面上的兩個(gè)filters的確也清空了。但是如果我在js里面新增了別的filters并沒(méi)有綁定到dom上。比如我還想有個(gè)參數(shù)filters.name。那樣使用Object.assign({},filters)。實(shí)際上是清楚不掉這個(gè)name的值的。
還是一個(gè)個(gè)循環(huán)清除對(duì)象吧
const clearFilters(filters) { for (const key in filters) { if (filters.hasOwnProperty(key)) { delete filters[key]; } } }
調(diào)用clearFilters(filters)
<el-form ref="formRef" :inline="true" :model="filters" class="card table-search"> <div class="search-title">{{ route.name }}</div> <div class="search_content"> <div class="searchCol"> <el-form-item label="" prop="orgName"> <el-autocomplete v-model="filters.orgName" :trigger-on-focus="false" value-key="orgName" :fetch-suggestions="querySearch" clearable class="inline-input w-50" placeholder="請(qǐng)輸入機(jī)構(gòu)" @select="handleSelect" /> </el-form-item> <el-form-item label="" prop="status"> <el-select v-model="filters.status" placeholder="請(qǐng)選擇啟用狀態(tài)" style="width: 240px" clearable > <el-option :value="0" label="啟用"></el-option> <el-option :value="1" label="停用"></el-option> </el-select> </el-form-item> </div> <div class="search_btn"> <el-form-item class="operation"> <el-button type="primary" @click="search"> 查詢</el-button> <el-button @click="reset"> 清空</el-button> </el-form-item> </div> </div> </el-form>
let filters = reactive({}); const formRef = ref(); const allOrgs=ref([ {orgName:'機(jī)構(gòu)1',orgCode:'1'}, {orgName:'機(jī)構(gòu)2',orgCode:'2'}, {orgName:'機(jī)構(gòu)3',orgCode:'3'} ]) const querySearch = (queryString: string, cb: any) => { const results = queryString ? allOrgs.value.filter(createFilter(queryString)) : allOrgs.value; cb(results); }; const createFilter = (queryString: string) => { return (thisOrg) => { return thisOrg.orgName.indexOf(queryString) != -1; }; }; const handleSelect = (item) => { filters.orgCode = item.orgCode; }; //訪問(wèn)接口 const getTableList = () => { let param= {param:{...filters} };//這里后端希望如果沒(méi)有搜索條件就傳個(gè)空對(duì)象param:{}這樣的格式。 regionPage(newParams); }; const search = () => { if(filters.orgName==""){ delete filters.orgName; delete filters.orgCode; } if(filters.status===""){ delete filters.status; } getTableList(); }; const reset = () => { //Object.assign({},filters) 這里可能導(dǎo)致filters.orgCode沒(méi)有清除掉 // filters={} 這里會(huì)導(dǎo)致頁(yè)面失去響應(yīng)式。清除內(nèi)容后再去回填選擇不上的問(wèn)題 clearFilters(filters) //使用這個(gè)才正確 console.log("filters",filters) formRef.value.resetFields(); getTableList(); }; const clearFilters(filters) { for (const key in filters) { if (filters.hasOwnProperty(key)) { delete filters[key]; } } }
到此這篇關(guān)于vue3中reactive的對(duì)象清空所引發(fā)的問(wèn)題解決方案(清空不了和清空之后再去賦值就賦值不了)的文章就介紹到這了,更多相關(guān)vue3 reactive賦值問(wèn)題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Vue.js實(shí)現(xiàn)輸入框清空功能的兩種方式
- vue前端更新后需要清空緩存代碼示例
- vue3清空reactive的四種方式
- Vue3如何清空Reactive定義的數(shù)組
- vue中el-date-picker type=daterange日期清空時(shí)不回顯的解決
- vue返回首頁(yè)后如何清空路由問(wèn)題
- ant design vue 清空upload組件圖片緩存的問(wèn)題
- vue如何實(shí)現(xiàn)清空this.$route.query的值
- vue清空f(shuō)orm對(duì)象的方法
- vue3清空l(shuí)et?arr?=?reactive([])的實(shí)現(xiàn)示例
相關(guān)文章
Vue 父子組件的數(shù)據(jù)傳遞、修改和更新方法
下面小編就為大家分享一篇Vue 父子組件的數(shù)據(jù)傳遞、修改和更新方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03vue使用less報(bào)錯(cuò):Inline JavaScript is not ena
這篇文章主要介紹了vue使用less報(bào)錯(cuò):Inline JavaScript is not enabled問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01vue.js的computed,filter,get,set的用法及區(qū)別詳解
下面小編就為大家分享一篇vue.js的computed,filter,get,set的用法及區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03VUE+element開(kāi)發(fā)后臺(tái)管理的搜索功能
這篇文章主要為大家詳細(xì)介紹了VUE+element開(kāi)發(fā)后臺(tái)管理的搜索功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04vue利用openlayers實(shí)現(xiàn)動(dòng)態(tài)軌跡
這篇文章主要為大家介紹了vue利用openlayers實(shí)現(xiàn)動(dòng)態(tài)軌跡,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11基于Vue實(shí)現(xiàn)的多條件篩選功能的詳解(類(lèi)似京東和淘寶功能)
這篇文章主要介紹了Vue多條件篩選功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05vue?過(guò)濾、模糊查詢及計(jì)算屬性?computed詳解
計(jì)算屬性是vue里面為了簡(jiǎn)化在模板語(yǔ)法中對(duì)響應(yīng)式屬性做計(jì)算而存在的,這篇文章主要介紹了vue?過(guò)濾、模糊查詢(計(jì)算屬性?computed),需要的朋友可以參考下2022-11-11Vue開(kāi)發(fā)中遇到的跨域問(wèn)題及解決方法
在本篇文章里小編給大家整理的是關(guān)于Vue開(kāi)發(fā)中遇到的跨域問(wèn)題及解決方法,需要的朋友們可以學(xué)習(xí)下。2020-02-02解決Antd中Form表單的onChange事件中執(zhí)行setFieldsValue不生效
這篇文章主要介紹了解決Antd中Form表單的onChange事件中執(zhí)行setFieldsValue不生效問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03解決在Vue中使用axios用form表單出現(xiàn)的問(wèn)題
今天小編就為大家分享一篇解決在Vue中使用axios用form表單出現(xiàn)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10