1. 程式人生 > 實用技巧 >微信小程式-父子元件傳值

微信小程式-父子元件傳值

父元件:

繫結的一個屬性(btns),(子元件名可以使駝峰大寫,也可以小寫)

<order-button bind:viewPageReloadFuc="onViewPageReloadFuc" btns="{{item.orderControlBtns}}"></order-button>

父元件引用子元件

{
    "navigationBarTitleText": "我的訂單",
    "usingComponents": {
        "order-button": "/components/order-button/order-button"
    }
}

onViewPageReloadFuc(e){
   console.log("子元件觸發並傳過來的引數值", e.detail.cao)
},

子元件:

<view wx:for="{{btns}}" wx:key="index">
   <view catchtap="buttonClick" data-btn="{{item}}">{{item.desc}}</view>
</view>

在子元件的json中,把自己定義為子元件

{
  "component": true
}

在properties裡定義的是元件對外要開發的屬性,在data裡定義的是在元件裡自己使用的私有的資料;

我們不要把data和properties裡的變數設定成同一個名字,如果他們名字相同,properties裡的會覆蓋data裡的。

Component({
  data: {
  },
  properties: {
    btns: {
      type: Array,
      value: []
    }
  },
  methods: {
    buttonClick(e){
      let btn = e.currentTarget.dataset.btn;
      // 一鍵復購
      if(btn.state == 'buyAgain'){
     //子元件傳給父元件一個事件
      this.triggerEvent('viewPageReloadFuc', {cao: '草'})
      }
     }
  }