Vue.js[vuex] comment envoi d'une mutation?

J'ai une liste de filtres à appliquer à un objet json.

Mon mutations ressembler à ceci:

const mutations = {
    setStars(state, payload) {
        state.stars = payload;
        this.dispatch('filter');
    },

    setReviews(state, payload) {
        state.reviews = payload;
        this.dispatch('filter');
    }
};

Raison de la façon dont les filtres de travail, j'ai besoin de ré-appliquer à nouveau car je ne peux pas tout simplement garder downfiltering une liste car il me fait des ennuis lorsqu'un utilisateur de sélectionner une option de filtre.

Ainsi, lorsqu'une mutation est en cours pour une des stars de filtre ou d'examens de filtre(l'utilisateur de filtrage) j'ai besoin d'appeler une fonction qui s'exécute tous mes filtres.

Qu'est-ce que mon option la plus facile ici? Puis-je ajouter une sorte de fonction d'assistance ou possible de mettre en place une action qui appelle les mutations qui en fait le filtre de mes résultats?

  • Lorsque vous avez besoin de retourner un filtrée de données, il n'est pas nécessaire de se muter votre espace de stockage. Maintenir l'intégrité des données et de créer un getter qui renvoie des données filtrées, soit 2 getters (1 pour chaque cas) ou d'une seule de lecture qui accepte un argument (l'état du filtre). Liées à la lecture: vuex.vuejs.org/en/getters.html
  • Je suis d'accord avec vous si c'était juste un filtre, mais j'ai besoin d'appliquer plusieurs filtres à la fois pour une seule valeur. Donc je ne peux pas l'utiliser juste 1 ou 2 getters séparément. Ils ont besoin de travailler ensemble.
  • Un getter peut en appeler une autre acquéreur.
  • vrai, mais j'aurais besoin de toute getter pour appeler tous les autres getter qui est un filtre et de le faire pour tous les getters. Il serait déraper très vite. Peut-être que je ne vois vraiment pas ce que tu veux dire mais merci pour l'astuce de toute façon!
  • Voici ce que je veux dire en gros: jsfiddle.net/wostex/u2yoLgLb
  • Le tri semble comme un concept différent. Avec un filtre, j'ai besoin de faire au moins une mutation de mon magasin parce que mon magasin a besoin de savoir quels éléments doivent être filtrés. Merci pour votre exemple, est toujours utile.
  • Le filtre est la même chose: jsfiddle.net/wostex/u2yoLgLb/1 vérifier un champ de recherche. Ce que j'essaie de dire, c'est que vous n'avez pas vraiment besoin de muter quelque chose dans la plupart des cas lorsque vous avez besoin d'un filtre (juste en Vuex conception, il n'est pas obligatoire cependant). C'est de cette façon, vous pouvez conserver les données pour un usage futur, lorsque l'utilisateur efface filtres par exemple. Il est préférable à mon avis de filtre à l'intérieur d'un composant lui-même ou avec un getter. Enchaînés les filtres peuvent être plus faciles à mettre en œuvre dans un composant lui-même avec des méthodes. Peut-être que votre application est totalement différent, je ne sais pas.

InformationsquelleAutor Stephan-v | 2017-06-01