首页 > 解决方案 > 如何将“委托”函数的参数传递给另一个函数从孩子到父母?

问题描述

我有个问题。我如何调用(委托)函数并向其添加一些参数,javascript 中是否存在 vay?

我创建了一个小例子: https ://jsfiddle.net/p7kL5mvw/

在孙子中,我有一个 OnEdit 函数。它应调用其父级 onEdit 函数,因此祖父级组件从中间(TableView)接收 a)更改的值和 b)prop a 和 b。

我在寻找一些东西,所以我可以在这一行中说:

<click-to-edit v-model="todos[idx].text" :editable="true" :pOnEdit="onEdit"></click-to-edit>

调用我父母的 onEdit 函数,传递我孩子给出的值并添加我的参数,例如:

:pOnEdit="onEdit(() => childArgument, todos[idx].a, todos[idx].b)

有没有可能,或者你将如何解决这个问题?非常感谢您的帮助!

标签: javascriptvue.jsvue-componentecmascript-5arrow-functions

解决方案


只需使用自定义事件

内部click-to-edit组件

<input @input="$emit('update', $event.target.value)" />

家长:

<click-to-edit v-model="todos[idx].text" :editable="true" @update="$emit('update', $event, todos[idx].a, todos[idx].b)"></click-to-edit>

祖父母:

<Parent @update="onUpdate" />
methods: {
  onUpdate(childArgument, parentArgumentA, parentArgumentB) {
   // do whatever
  }
}

推荐阅读