vuex getter 带有用 Typescript 编写的参数
vuex getter with argument written in Typescript
可以创建一个 vuex 存储 getter,它接受一个参数参数,如下所示:https://vuex.vuejs.org/en/getters.html
我正在使用 Typescript (https://github.com/hmexx/vue_typescript_starter_kit) 编写我的代码,但我不知道如何编写带有参数参数的 getter。即,以下内容似乎不起作用:
export function getItemById(state : State, id : Number) : MyItem | undefined {
if(id === undefined) {
return undefined;
}
for(const item of state.items) {
if(item.id === id) {
return item;
}
}
return undefined;
}
export default <GetterTree<State, any>> {
getItemById
};
基于vuex docs你可以实现以下:
getters: {
// ...
getTodoById: (state, getters) => (id) => {
return state.todos.find(todo => todo.id === id)
}
}
store.getters.getTodoById(2) // -> { id: 2, text: '...', done: false }
在打字稿中你可以尝试这样的事情:
export default {
getItemById(state: State, getters: any) {
return (id: number) => {
return state.items.find(item => item.id === id);
}
}
}
可以创建一个 vuex 存储 getter,它接受一个参数参数,如下所示:https://vuex.vuejs.org/en/getters.html
我正在使用 Typescript (https://github.com/hmexx/vue_typescript_starter_kit) 编写我的代码,但我不知道如何编写带有参数参数的 getter。即,以下内容似乎不起作用:
export function getItemById(state : State, id : Number) : MyItem | undefined {
if(id === undefined) {
return undefined;
}
for(const item of state.items) {
if(item.id === id) {
return item;
}
}
return undefined;
}
export default <GetterTree<State, any>> {
getItemById
};
基于vuex docs你可以实现以下:
getters: {
// ...
getTodoById: (state, getters) => (id) => {
return state.todos.find(todo => todo.id === id)
}
}
store.getters.getTodoById(2) // -> { id: 2, text: '...', done: false }
在打字稿中你可以尝试这样的事情:
export default {
getItemById(state: State, getters: any) {
return (id: number) => {
return state.items.find(item => item.id === id);
}
}
}