簡體   English   中英

Onsen + VueJS:從子組件中回調(使用onsNavigatorProps)

[英]Onsen + VueJS: Call back from child component (using onsNavigatorProps)

每個文檔在這里

如果頁面A推動頁面B,則它可以發送功能作為修改頁面A上下文的屬性或數據。 這樣,每當我們要從頁面B向頁面A發送任何內容時,頁面B只需調用該函數並傳遞一些參數即可:

// Page A
this.$emit('push-page', {
  extends: pageB,
  onsNavigatorProps: {
    passDataBack(data) {
      this.dataFromPageB = data;
    }
  }
});

我正在遵循這個想法。 this.$store.commit做類似的事情

我想推送AddItemPage並將返回的值復制到this.items

//Parent.vue

pushAddItemPage() {
this.$store.commit('navigator/push', {
  extends: AddItemPage,
  data() {
    return {
      toolbarInfo: {
        backLabel: this.$t('Page'),
        title: this.$t('Add Item')
      }
    }
  },
  onsNavigatorProps: {
    passDataBack(data) {
      this.items = data.splice()   //***this*** is undefined here             
    }
  }
})
},

//AddItemPage.vue   
...    
submitChanges()
{
   this.$attrs.passDataBack(this, ['abc', 'xyz']) // passDataBack() is called, no issues.
},    
...

唯一的問題是在回調函數中不可用。

所以我不能這樣做this.items = data.splice()

當前上下文可通過箭頭運算符獲得。

正確版本:

onsNavigatorProps: {
    passDataBack: (data) => {
      this.items = data.splice()                
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM