По документации здесь
Если страница A нажимает на страницу B, она может отправлять функцию в качестве реквизита или данные, которые изменяют контекст страницы A.Таким образом, всякий раз, когда мы хотим отправить что-либо на страницу 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()