优化一下这段代码, if (this.userInfo.admin === false && this.userInfo.officeId === this.editId) { this.event.emit({ 'parentId': '' }); }else{ this.event.emit({ 'parentId': this.parentId }); }
时间: 2023-05-16 17:05:48 浏览: 82
) {
console.log("Sorry, you are not authorized to access this page.");
}
可以改写成:
if (!this.userInfo.admin) {
console.log("Sorry, you are not authorized to access this page.");
}
这样更简洁明了,也更符合 JavaScript 的语法规范。
相关问题
if (this.userInfo?.admintype !== 1) { this.form.getFieldDecorator('orgId', { initialValue: this.userInfo?.orgId }) } 这段代码中问号什么意思
在这段代码中,问号 `?` 是一个条件链操作符,用于进行可选链式访问。它可以用来检查一个对象是否为 null 或 undefined,然后访问该对象的属性或方法。
在这里,`this.userInfo?.admintype` 和 `this.userInfo?.orgId` 都使用了可选链式访问。它们会首先检查 `this.userInfo` 是否存在,如果存在则继续访问 `admintype` 和 `orgId` 属性。如果 `this.userInfo` 为 null 或 undefined,则不会继续访问后面的属性,避免了可能的错误。
因此,整个条件语句 `this.userInfo?.admintype !== 1` 的含义是:如果 `this.userInfo` 存在且 `admintype` 不等于 1,则执行后面的代码块。
export const useUserStore = defineStore('user', { state: () => ({ userInfo: { username: '', id: '', is_admin: '' } }), getters: { isAdmin: state => state.userInfo.is_admin === '1', getUsername: state => state.userInfo.username }, actions: { setUserInfo(username, id, is_admin) { this.userInfo.username = username this.userInfo.id = id this.userInfo.is_admin = is_admin } , getUserInfo() { const isAdmin = this.isAdmin; const username = this.getUsername; return { isAdmin: isAdmin, username: username }; } } }, { persist: true })怎么在其他.vue文件中使用,并且调用getUserInfo渲染
要在其他.vue文件中使用该store,你需要首先导入vuex,并且使用`useUserStore`函数获取store实例。
下面是一个示例:
```
<template>
<div>
<p>Username: {{ username }}</p>
<p v-if="isAdmin">You are an admin</p>
</div>
</template>
<script>
import { useUserStore } from '@/store/user'
export default {
setup() {
const userStore = useUserStore()
const { username, isAdmin } = userStore.getUserInfo()
return {
username,
isAdmin
}
}
}
</script>
```
在该示例中,我们导入了`useUserStore`函数并使用它获取store实例。然后,我们调用`getUserInfo`方法获取用户信息并将其返回给模板进行渲染。注意,在使用`setup`函数时,我们必须使用`return`语句将变量返回给模板。
阅读全文