将值传递给多个函数

Posted

技术标签:

【中文标题】将值传递给多个函数【英文标题】:pass value into multiple functions 【发布时间】:2021-12-07 00:29:26 【问题描述】:

我在v-for 中有一个v-for。单击我选择的dropdown-item 后,我将数据传递给我的methods - 当然,这很好用。

但现在我需要在我的方法中的另一个函数中使用确切的 itemDropdown.ID...

我是否必须在方法之间传递数据,或者我该如何解决?

谢谢!

<div v-for="(item, index) in json" :key="index">
  <b-dropdown text="Selection" right>
    <b-dropdown-item v-for="(itemDropdown, indexDropdown) in json2" :key="indexDropdown" @click="inputDropdown(itemDropdown.ID)">itemDropdown.Name</b-dropdown-item>
  </b-dropdown> 
</div>
methods: 
  inputDropdown(ID) 
    //Some code
  ,

  anotherFunction(here I need this itemDropdown.ID as well!)
  //Do some code too
    

【问题讨论】:

你能在 inputDropdown() 中调用 anotherFunction() 吗?是不是搞砸了你的逻辑? 这能回答你的问题吗? How to call multiple functions with @click in vue? 不清楚您的问题是什么...您如何调用anotherFuntion()?如果您从inputDropdown() 调用它,最明显的方法是传递ID,因为它已经在范围内 【参考方案1】:

我认为写一些类似的处理方法会更好,你也可以用其他方法扩展使用。

<div v-for="(item, index) in json" :key="index">
  <b-dropdown text="Selection" right>
    <b-dropdown-item v-for="(itemDropdown, indexDropdown) in json2" :key="indexDropdown" @click="dropdownClickHandler(itemDropdown.ID)">itemDropdown.Name</b-dropdown-item>
  </b-dropdown> 
</div>

我认为这样的用法会更具可读性。

methods: 
  dropdownClickHandler(ID) 
    this.inputDropdown(ID);
    this.anotherFunction(ID);
  ,

  inputDropdown(ID) 
    //Some code
  ,

  anotherFunction(ID)
   // Some code
    

【讨论】:

嗨,这似乎有效。但是,如果anotherFunction 是我的模板中的当前函数,带有anotherFunction(value, value, value) 之类的参数,是否也可以将ID 传递给这个函数? 是的,但您需要使用dropdownClickHandler(itemDropdown.ID, itemDropdown.value) 等附加参数进行修改。或者更好的版本只是通过dropdownClickHandler(itemDropdown) 并在inputDropdownanotherFunction 中使用对象解构来获取参数developer.mozilla.org/en-US/docs/Web/javascript/Reference/…

以上是关于将值传递给多个函数的主要内容,如果未能解决你的问题,请参考以下文章

将值传递给构造函数时使构造函数工作的问题

将值传递给 C 中的函数

如何将值传递给 CloudWatch 中的 Lambda 函数?

如何使用 nodejs 将值传递给另一个函数?

C ++将值传递给函数中的二维字符数组

通过R中的变量将值传递给函数