vue 子件向父組件傳值和參數


昨天寫程序,無意中遇到了vue子件向父組件傳值的一個坑里,在此記錄一下,提醒來人。

子組件觸動父組件的事件傳參,子組件如下:

<template>
      <div class="btncom">
        <van-button type="default" @click="clearorder()">清空</van-button>    
    </van-popup>
  </div>
</template>
<script>
export default { 
  methods: {
    clearorder() {
              this.$emit("getorderList", { flg: "1" });
     
    }
  }
};
</script>

父組件如下:

<template>
    <get-order
      ref="getorders"
      @closeTip="getorder"
      v-if="getoderflg"
      @getorderList="getPendingOrderList()"//都是()惹的禍
    ></get-order>
  </div>
</template>
<script>
export default {
  methods: {
    getPendingOrderList(obj) {
          if(obj){
            if(obj.flg=="1"){
              this.getoderflg=true;
            }
          }
        }
      });
}
    },
</script>

執行一下,obj為undefined,   為什么,仔細看了一遍,原來問題出在了

 @getorderList="getPendingOrderList()"//都是()惹的禍  ()身上。

1.不使用圓括號,event被自動當作實參傳入。去掉(),問題解決。

2.使用圓括號,必須顯式的傳入event對象,如果不傳入可能最終找到的是全局的window .event。

  @getorderList="getPendingOrderList($event)",問題解決。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM