是否有必要在字符串数组和对象排列运算符之间拆分mapState



我正在使用Vuex,我有两种状态:

state: {
token: 'xyz',
user: {
id: 1,
user: 'cody',
username: 'cody'
}
}

在组件中,我使用了以下内容:

<template>
<div>
<button @click="getProfile">
click to get profile
</button>
<p>{{ user.name }}</p>
</div>
</template>
<script>
import { mapState } from 'vuex'
export default {
name: "Profile",
computed: {
...mapState({
token: "token",
}),
...mapState(["user"])
},
methods: {
getProfile() {
fetch("http://localhost:3000/profile", {
headers: {
Authorization: `Bearer ${this.token}`,
}
})
}
}
}
</script>

注意到在计算部分,我使用了2个mapState而不是1个。

computed: {
...mapState({
token: "token",
}),
...mapState(["user"])
},

请问是否可以在单个mapState声明中同时声明字符串数组对象扩展运算符?因为现在我需要2个mapState才能让它工作。所以我只是想知道,当我只使用一个mapState时,我是否遗漏了什么?

由于没有其他计算属性,并且没有重命名token状态,因此可以简单地使用

computed: mapState(["token", "user"]),

mapState帮助程序只接受一个参数,要么是字符串数组,要么是对象,所以不接受,不能混合数组和对象格式。根据你下面的评论,你可以这样做。。。

computed: mapState({
token: "token",
user: "user"
})

虽然我真的不明白你为什么要

最新更新