wickinats
@wickinats

Почему Vuex-Electron не работает?

При попытке инициализации работы с Vuex-electron попросту перестаёт работать VueJS. Если данная ошибка нерешаема, то имеются ли другие варианты? Допустим, тот же другой фреймворк, который не имеет таковых проблем при работе с Electron.
Версия Node: v12.16.1
Версия Electron: v8.2.0

import Vue from 'vue'
import Vuex from 'vuex'

import { createPersistedState, createSharedMutations } from "vuex-electron"

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    api_url: "https://wall.alphacoders.com/api2.0/get.php",
    api_key: "Тут был код",
    wallpapers: [ ]
  },
  mutations: {
    set_wallpapers(state, wallpaper) {
      state.wallpapers = wallpaper;
    }
  },
  actions: {
  },
  getters: {
    get_api_url: function(state) {
      return state.api_url;
    },
    get_api_key: function(state) {
      return state.api_key;
    },
    get_wallpapers: function(state) {
      return state.wallpapers
    }
  },
  plugins: [
    createPersistedState(),
    createSharedMutations()
  ],
  modules: {
  }
})


5e84a2c215792844655988.png
5e84a344b8543083544107.png
  • Вопрос задан
  • 319 просмотров
Решения вопроса 1
wickinats
@wickinats Автор вопроса
Проблема решена:
Причина подобного поведения является тот факт, что нынешняя версия Vuex-Electron попросту изобилует различными неурядицами и несовместимостями. Именно поэтому была предпринята попытка отладки прежнего кода на обычном Vuex.
Так что же, собственно, решает проблему использования данного плагина в Electron-приложениях? Просто используйте стрелочные функции. Приведу следующий пример нынешнего использования стрелочной функции в компоненте Vue:

this.$http.get(this.search_api_url).then((response) => {
  if(response.data.success) {
    this.$store.commit("set_Wall", response)
  } else {
      alert(response.data.error)
    }
 })


В этом примере this работает ожидаемо, тогда как использование обычных функций приводит к проблемам с зонами видимости, которые попросту блокируют работу нашего приложения в экосистеме Electron.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы