То, чего вы хотите достичь, может быть достигнуто с помощью
parent.vue
<child-componet :parent-method="thisIsTheMethod" />
...
methods: {
thisIsTheMethod()
{
//here it does something
}
}
обратите внимание, что метод, переданный внутри опоры, не имеет круглой скобки ()
, потому что вы передаете ссылку на него.
Чтобы использовать его внутри дочернего компонента, добавьте ()
@click="parentMethod()"
To go обратно в свой пример, измените это:
<Dropdown
:items="[
{
text: 'Edit',
icon: 'fal fa-edit',
click: editFunction(id)
},
{
text: 'Delete',
icon: 'fal fa-trash-alt',
click: deleteFunction(id)
}
]"
/>
на
<Dropdown
:items="[
{
text: 'Edit',
icon: 'fal fa-edit',
click: () => editFunction(10)
},
{
text: 'Delete',
icon: 'fal fa-trash-alt',
click: () => deleteFunction(20)
}
]"
/>
и оставьте объявление метода editFunction(id)
как есть. Аргумент будет введен автоматически.
Несмотря на то, что это решение будет работать, лучший способ добиться такого взаимодействия между родителем и потомком - передать значение в дочернем элементе, а затем прослушать его