Onsen + VueJS:从子组件回调(使用onsNavigatorProps)

时间:2018-05-18 13:10:51

标签: vuejs2 onsen-ui2

根据文档here

如果页面A推送页面B,它可以发送一个函数作为修改页面A上下文的道具或数据。这样,每当我们想要从页面B向页面A发送任何内容时,后者只需要调用该函数并传递一些参数:

// 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()

1 个答案:

答案 0 :(得分:0)

当前上下文可用于箭头操作符。

正确版本:

while(!glfwWindowShouldClose(window)){
    glClear( GL_COLOR_BUFFER_BIT );
    drawString(msg, 100, 100);
    glfwPollEvents();
    glfwSwapBuffers(window);
}