2017-09-26 3 views
1

J'ai une fonction Vue calculée qui a un paramètre. Chaque fois que je tente de le lier à clic, je reçois et erreur Error in event handler for "click": "TypeError: searchHashtag is not a function"L'appel d'une fonction avec un paramètre en click provoque une erreur

Voici le code HTML:

<el-button @click="searchHashtag('#acc')">Test</el-button> 

Et voici la logique:

data() { 
    messages: [] 
}, 

mounted() { 
    api.fetchMessages(this.projectId, (data) => { 
      this.messages = data.messages; 
}, 

computed: { 
    searchHashtag (searchBy) { 
      if (_.contains(this.messages, searchBy)) 
       this.$message('This is a message.'); 
    } 
} 

Répondre

2

Vous voulez une méthode, pas propriété calculée.

methods: { 
    searchHashtag (searchBy) { 
      if (_.contains(this.messages, searchBy)) 
       this.$message('This is a message.'); 
    } 
} 

Les propriétés calculées ne peuvent pas être appelées comme une fonction. Ils agissent comme des propriétés du Vue et ne prennent pas d'arguments. Lorsque vous avez besoin d'une fonction qui accepte les arguments, utilisez toujours une méthode.