vuex как передать параметр в геттер
Могу ли я передать в геттер какой либо параметр? Пример кода:
getters: {
getTable(state, tableId) {
if (state.tables[tableId]?.data) {
return state.tables[tableId].data;
}else{
return [];
}
},
}
есть ли варианты по лучше?
Ответы (1 шт):
Автор решения: Evgenii
→ Ссылка
В вашем примере геттеры получают другие геттеры в качестве второго аргумента.
Вы можете передавать аргументы геттерам, возвращая функцию:
getters: {
// ...
getTodoById: (state) => (id) => {
return state.todos.find(todo => todo.id === id)
}
}
Вызов:
store.getters.getTodoById(2) // -> { id: 2, text: '...', done: false }
Обратите внимание, что геттеры, к которым обращаются через методы, будут запускаться каждый раз, когда вы их вызываете, и результат не кэшируется.