Bonjour,
Je suis entraine de suivre le tutorial sur céer un système de commentaire Voila je rencontre un petit problème avec mon code.
J'essais de récuper mes commentaire avec le sytème de Vuex.
<script type="text/babel">
import Comment from './comments/Comment.vue'
import CommentForm from './comments/Form.vue'
import { comments } from 'src/store/getters'
import { getComments } from 'src/store/actions'
export default {
vuex: {
getters: { comments },
actions: { getComments }
},
components: {
Comment,
CommentForm
},
props: {
id: Number,
model: String,
csrf: String,
ip: String
},
ready: function () {
this.getComments(this.model, this.id)
}
}
</script>
c'est la fonction getComments fasse une requête ajax. J'ai mis cette function dans un fichier action,js :
import axios from 'axios'
export const getComments = function (store, model, id) {
return axios.get('/comments', {params: {id: id, type: model}}).then((response) => {
store.dispatch('ADD_COMMENTS', response.data)
})
}
Je ne vois pas mes commentaires et dans ma console j'ai cette erreur :
Comments.vue?7751:32Uncaught TypeError: this.getComments is not a function
J'utilise le systeme de store J'ai initier Vuex dans mon store qui est lui aussi charger dans mon min.js
Je ne comprend pas pourquoi vuejs dit que getComments n'est pas fonction
Merci de votre aide
Hypothèse : peut-être n'est-ce pas utile de la définir en constante ? Si ?
Pourquoi ne pas faire simplement un export de la seule fonction (comme une fonction anonyme) ? Au moins pour tester...
Utilise ready() {}
eu lieu de ready: function () {}
En utilisant la seconde version, tu en fait une fonction anonyme, et tu n'as pas accès à this
dedans.
J'ai essayer avec la la version ready() {}. Je n'est toujours pas acèss à la fonction this.getComments().
Et pourtant que je fai debug mes variable this.model et this.id dans la fonction ready, j'ai accès sans problème.
L'erreur dans ma console est ceci :
Uncaught TypeError: this.getComments is not a function
En plus, j'ai un gros problème de transfert de mes variables (this.model et this.id) sont mal transféré à la fonction getComments qui est dans mon script actions.js En bref, mon système fait un peut n'importe quoi... :(