【发布时间】:2020-05-22 18:09:15
【问题描述】:
我想知道在 Typescript vue 类组件中使用 ...mapActions([]) 的正确方法是什么。
这就是我的做法:
<script lang="ts">
import { Component, Prop, Vue } from "vue-property-decorator";
import { mapActions } from "vuex";
@Component
export default class UsersAdd extends Vue {
userName: string = "";
...mapActions(["newUser"]) /*mapAction from vuex */
addUser() {
console.log("...adding new user");
this.newUser(this.userName);
}
}
</script>
你可以说它不工作......
使用 Javascript 我是这样做的。
methods:{
...mapActions(["newUser"])
}
如何使用 Typescript 类组件?
编辑: 这个方法我试过了,还是不行
@Component({
methods: {
...mapActions(["newUser"]) /*mapAction from vuex */
}
})
export default class UsersAdd extends Vue {
userName: string = "";
addUser() {
console.log("...adding new user");
this.newUser(this.userName);
}
}
【问题讨论】:
-
语法无效。不会有好的方法,因为 TS 不会知道您尝试添加的方法。请参阅github.com/vuejs/vue-class-component/issues/… 了解解决方法。
-
@EstusFlask 您共享的链接将与 mapGetters 一起使用,但如果我使用方法: mapActions([]) 然后在 addUser() 中调用它,它将无法工作
-
会导致类型错误吗?您还需要手动输入方法,请参阅链接中的
charts!: any[]。我想在你的情况下它需要是newUser!: (username: string) => void。
标签: typescript vue.js vuejs2 vue-component vuex