根据文档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()
答案 0 :(得分:0)
当前上下文可用于箭头操作符。
正确版本:
while(!glfwWindowShouldClose(window)){
glClear( GL_COLOR_BUFFER_BIT );
drawString(msg, 100, 100);
glfwPollEvents();
glfwSwapBuffers(window);
}