最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue關(guān)于重置表單數(shù)據(jù)出現(xiàn)undefined的解決

 更新時(shí)間:2022年09月09日 09:46:09   作者:芝士焗紅薯  
這篇文章主要介紹了vue關(guān)于重置表單數(shù)據(jù)出現(xiàn)undefined的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue重置表單數(shù)據(jù)出現(xiàn)undefined

最近聯(lián)調(diào)出現(xiàn)的一個(gè)新問題,條件查詢在前端很常用,基本的模板就是幾個(gè)查詢條件,一個(gè)查詢按鈕,一個(gè)重置按鈕。選擇查詢條件,點(diǎn)擊查詢,會根據(jù)查詢條件,篩選出對應(yīng)的數(shù)據(jù)。重置按鈕就是把所有已選的查詢條件一鍵清空。

因?yàn)椴樵儣l件比較多,所以可以直接使用表單提交。

我們在這里選了期數(shù)傳過去,后端根據(jù)傳過去的條件,返回了相應(yīng)的內(nèi)容。

在這里有一個(gè)要說的就是,在這個(gè)項(xiàng)目里,后端要求每個(gè)條件都是必傳的,沒選的就傳空的,所以查詢方法是單獨(dú)寫了每個(gè)表單的內(nèi)容的。(不寫的話就不會傳了,也要在data里定義默認(rèn)每個(gè)數(shù)據(jù)為空字符串)

form: {
  dateRange: ['', ''],
  startTime: '',
  endTime: '',
  qishu: '',
  content: ''
},
doSearch () {
  this.axios.post(this.changeAllurl, {
    startTime: this.dateRange[0],
    endTime: this.dateRange[1],
    pici: this.form.qishu,
    content: this.form.content,
    page: this.page,
    limit: 10
    }).then(res => {
      if (res.result === '00000') {
        this.tableData = res.data.list
        this.total = res.data.total
      } else {
        this.$Message.error(res.data.information)
      }
    })
  },

此時(shí)我們點(diǎn)擊重置,條件查詢表單里的內(nèi)容應(yīng)該全部重新變?yōu)榭罩怠?/p>

// 重置表單
formReset () {
  console.log(this.form)
  this.dateRange = ['',''],
  this.form = {
    qishu: '',
    content: '',
  }
  console.log(this.form)
},

變?yōu)榭罩抵螅覀冊僦匦逻M(jìn)行條件查詢。

在這里出現(xiàn)了一個(gè)問題,我們上文說過,他應(yīng)該把所有的數(shù)據(jù)都傳過去,沒有數(shù)據(jù)的,也要傳空字符串,但我們發(fā)現(xiàn),在這個(gè)查詢里,pici沒有傳。(按道理應(yīng)該傳pici: "")

畢竟一共就按了兩個(gè)按鈕,所以我們可以很輕易地想到問題可能出在重置按鈕身上。我們在重置方法最開始打印了一下form,可以看到?jīng)]有任何問題。

 在對form里的數(shù)據(jù)賦值空字串后,我們再次打印form,可以發(fā)現(xiàn)期數(shù)變成了undefined。所以這就是為什么在第二次查詢的時(shí)候,pici會丟失。

這里他變成undefined的原因,是因?yàn)関-model是雙向綁定的。期數(shù)是一個(gè)選擇框,可能01對應(yīng)是,02對應(yīng)否,把期數(shù)變成空字符串后,空字符串沒有對應(yīng)的選項(xiàng),就會導(dǎo)致期數(shù)變成undefined。

如果我們是一個(gè)輸入框,就不會存在undefined的問題了。

找到問題,我們有幾個(gè)解決方案

1.讓后端提供空字符串對應(yīng)的選項(xiàng)(這是因?yàn)槲业倪x擇框是后端獲取的,如果我們是自己寫的選擇框,前端直接添加就行)

2.判斷,為undefined的時(shí)候賦值空字符串

因?yàn)槲疫@邊選擇框太多了,所以方法1排除。

方法2的話在查詢的時(shí)候使用空值合并運(yùn)算符pici: this.form.qishu ?? ""

(空值合并運(yùn)算符,如 a = b ?? c,當(dāng) b 為 null 或者 undefined 時(shí),將 c 的值賦給 a。在 Java 模板 Freemarker 里有相似語法。)

但是我發(fā)現(xiàn)我用這個(gè)運(yùn)算符會報(bào)錯(cuò),原因是用這個(gè)運(yùn)算符在vue 項(xiàng)目的模板里,默認(rèn)是不可用的。需要引用babel 開發(fā)依賴庫vue-template-babel-compiler。

好麻煩 pass

所以咱們直接用||或運(yùn)算符哈。

應(yīng)該是沒問題的,這個(gè)方法我沒來得及實(shí)施,因?yàn)楹蠖说炔患?,后來他直接自己改了代碼,現(xiàn)在不需要每條都傳空值過去了,所以可以接受undefined。

所以我們還有方法3!就是擺爛!說你搞不定!讓后端來搞定!

今天本來打算試一下或運(yùn)算符的,結(jié)果后端已經(jīng)把服務(wù)關(guān)了,那咱們就之后有時(shí)間再測吧。

還有個(gè)方法,組件中表單是有對應(yīng)的表單重置的方法的,下次有機(jī)會試一試。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • VUE?html5-qrcode實(shí)現(xiàn)H5掃一掃功能實(shí)例

    VUE?html5-qrcode實(shí)現(xiàn)H5掃一掃功能實(shí)例

    這篇文章主要給大家介紹了關(guān)于VUE?html5-qrcode實(shí)現(xiàn)H5掃一掃功能的相關(guān)資料,html5-qrcode是輕量級和跨平臺的QR碼和條形碼掃碼的JS庫,集成二維碼、條形碼和其他一些類型的代碼掃描功能,需要的朋友可以參考下
    2023-08-08
  • 一文秒懂Vue3的v-model

    一文秒懂Vue3的v-model

    v-model 是 Vue 內(nèi)置的指令作為屬性接收一個(gè)變量(不能是常量)綁定到普通組件和自定義組件中,本文給大家介紹Vue3的v-model示例代碼,感興趣的朋友跟隨小編一起看看吧
    2023-02-02
  • axios解決高并發(fā)的方法:axios.all()與axios.spread()的操作

    axios解決高并發(fā)的方法:axios.all()與axios.spread()的操作

    這篇文章主要介紹了axios解決高并發(fā)的方法:axios.all()與axios.spread()的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Vue預(yù)渲染:prerender-spa-plugin生成靜態(tài)HTML與vue-meta-info更新meta

    Vue預(yù)渲染:prerender-spa-plugin生成靜態(tài)HTML與vue-meta-info更新meta

    Vue.js中,prerender-spa-plugin和vue-meta-info插件的結(jié)合使用,提供了解決SEO問題的方案,prerender-spa-plugin通過預(yù)渲染技術(shù)生成靜態(tài)HTML,而vue-meta-info則能動態(tài)管理頁面元數(shù)據(jù),本文將探討如何使用這兩個(gè)工具優(yōu)化Vue.js項(xiàng)目的SEO表現(xiàn),包括安裝、配置及注意事項(xiàng)
    2024-10-10
  • vue中如何動態(tài)設(shè)置css樣式的hover

    vue中如何動態(tài)設(shè)置css樣式的hover

    這篇文章主要介紹了vue中如何動態(tài)設(shè)置css樣式的hover,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue動態(tài)組件和keep-alive組件實(shí)例詳解

    Vue動態(tài)組件和keep-alive組件實(shí)例詳解

    動態(tài)組件指的是動態(tài)切換組件的顯示與隱藏,下面這篇文章主要給大家介紹了關(guān)于Vue動態(tài)組件和keep-alive組件的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • Vue3+Vite項(xiàng)目使用mockjs隨機(jī)模擬數(shù)據(jù)

    Vue3+Vite項(xiàng)目使用mockjs隨機(jī)模擬數(shù)據(jù)

    這篇文章主要介紹了Vue3+Vite項(xiàng)目使用mockjs隨機(jī)模擬數(shù)據(jù),需要的朋友可以參考下
    2023-01-01
  • vue+elemen實(shí)現(xiàn)el-tooltip在文本超出區(qū)域后浮現(xiàn)

    vue+elemen實(shí)現(xiàn)el-tooltip在文本超出區(qū)域后浮現(xiàn)

    el-tooltip組件本身就是懸浮提示功能,在對它進(jìn)行二次封裝時(shí),實(shí)現(xiàn)超出的文本浮現(xiàn),本文就來介紹一下vue+elemen實(shí)現(xiàn)el-tooltip在文本超出區(qū)域后浮現(xiàn),感興趣的可以了解一下
    2023-12-12
  • vue-cli 3.x 修改dist路徑的方法

    vue-cli 3.x 修改dist路徑的方法

    今天小編就為大家分享一篇vue-cli 3.x 修改dist路徑的方法,具有很好的參考價(jià)值。希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue2之jessibuca視頻插件使用教程詳細(xì)講解

    vue2之jessibuca視頻插件使用教程詳細(xì)講解

    Jessibuca進(jìn)行直播流播放,為用戶帶來便捷、高效的視頻觀看體驗(yàn),下面這篇文章主要給大家介紹了關(guān)于vue2之jessibuca視頻插件使用的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09

最新評論

宣威市| 游戏| 淮滨县| 张家界市| 日土县| 开远市| 苏尼特右旗| 长岛县| 石渠县| 登封市| 汤原县| 永和县| 香港 | 永登县| 同德县| 清远市| 玉山县| 天津市| 中江县| 招远市| 庆城县| 泌阳县| 连南| 新蔡县| 阜康市| 于都县| 平罗县| 福建省| 聂拉木县| 越西县| 香港| 肥城市| 新源县| 长岭县| 蕉岭县| 延吉市| 萝北县| 石河子市| 石狮市| 鞍山市| 千阳县|