@PatriotSY

Как в vuex создать функцию?

В vuex добавил данные и геттер к ним:

state: {
  tree: null, // Json data
},
getters: {
  getNode: (state, text) => {
    return this.findByText(text);
  }
}

Как создать в vuex рекурсивную функцию findByText:

getNodeBySlug(slugName, nodes = this.tree) {
      const filterFn = ({slug = ""} = {}) => slug.includes(slugName);

      for (const node of nodes) {
        if (!node.type) {
          continue;
        }
        if (node.type.includes("leaf")) {
          if (filterFn(node)) {
            return node;
          }
        }
        if (node.type.includes("folder")) {
          const result = this.getNodeBySlug(filterFn, node.children);
          if (result) {
            return result;
          }
        }
      }
    },

Закинуть в methods не получается - ее не видно, да и доступа к this.tree нету. В документации такое не описано. Возможно, такой логики в vuex не должно быть, но пока лучше ничего не придумал. Как реализовать задуманное?
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
rpsv
@rpsv
делай либо хорошо, либо никак
Добавьте в любое место проекта (по хорошему в отдельный файл/класс), и подключайте через import.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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