mapActions не возвращает действие из модуля - PullRequest
2 голосов
/ 17 апреля 2020

Я пытаюсь добавить Действия, созданные в модуле Vuex, в Методы моего компонента.

Мой компонент "HomePage. vue" выглядит следующим образом

import { PlusIcon } from "vue-feather-icons";
import TaskItem from "../TaskItem";
import moment from "moment";
import { mapGetters, mapActions } from "vuex";

export default {
  name: "home-page",
  components: {
    PlusIcon,
    TaskItem,
  },
  methods: {
    ...mapActions(['fetchTasks'])
  },
  computed: mapGetters(['allTasks']),
  created() {
    setInterval(() => {
      document.getElementById("time").innerHTML = moment().format("h:mm:ss a");
    }, 1000);
  },
};

Мой модуль Vuex "tasks. js" выглядит так:

import fs from 'fs'

const state = {
  tasks: []
}
const getters = {
  allTasks: (state) => state.tasks
}

const actions = {
  fetchTasks({commit}) {
    let rawdata = fs.readFileSync('../backend/tasks.json')
    console.log(JSON.parse(rawdata))
    commit('setTasks', JSON.parse(rawdata))
  }
}

const mutations = {
  setTasks: (state, passedTasks) => (state.tasks.push(passedTasks))
}

export default {
  state,
  getters,
  actions,
  mutations,
}

При попытке использовать this.fetchTasks () в созданном () ничего не происходит. Когда консоль регистрирует this.fetchTasks (), она возвращается как неопределенная

1 Ответ

0 голосов
/ 18 апреля 2020

Учитывая, что tasks является модулем вашего vuex магазина, вы должны назвать свой mapActions, mapGetters следующим образом:

methods: {
  ...mapActions('tasks', ['fetchTasks'])
},
computed: {
  ...mapGetters('tasks', ['allTasks'])
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...