В 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 не должно быть, но пока лучше ничего не придумал. Как реализовать задуманное?