Я учу VueJS2 использовать с Laravel, и у меня возникли некоторые трудности с отправкой данных от родителя к ребенку и возвращением события. Вчера я сделал несколько поисков в Google и здесь в стеке.
Я пытаюсь сообщить ребенку, что пользователь нажал кнопку отправки родительского компонента, ребенок должен взять данные из входных данных и вернуть их родителю для отправки.
userForm.blade.php
// Only part of the content
<b-form method="PATCH" action="/users/store">
<b-userform to-send-data="sendCall"></b-userform>
</b-form>
formComponent.vue
// Part of <script>
data() {
return {
senCall: false
};
},
methods: {
getChildData(e) {
this.sendCall = true;
console.log("FormComponent: 1");
console.log(e);
},
sendForm(data) {
console.log("FormComponent: 2");
console.log(data);
}
}
userFormComponent.vue
// Part of <Script>
props: {
toSendData: false
},
methods: {
sendData: function() {
console.log("UserForm: 1");
}
},
watch: {
toSendData: function() {
console.log("Change? " + this.toSendData);
}
}
Я попытался изменить to-send-data="sendCall"
на :to-send-data="sendCall"
, но получил ошибку:
[Vue warn]: Property or method "sendCall" is not defined on the instance but referenced during render.
Более полный код:
CodeSandbox
Спасибо за помощь.
EDIT:
С помощью неопределенной помощи я узнал больше о слотах / слотах с областями действия в документации VueJS, а в другом сообществе пользователь дал мне ссылку , чтобы лучше понять поток данных родителей и детей.
Чтобы код работал, я удалил to-send-data="sendCall"
из файла Blade и поместил его в <slot :to-send-data="sendCall"></slot>
в файле formComponent.vue.