
发现一个很头疼问题RuoyiAppuniapp小程序在文件中随时获取nickname获取不到因为在登录的时候没有存储或许官方有解决方案 接下来使用vuex开始破局 添加的文件前面都有一行1.user.jsimportconfigfrom/configimportstoragefrom/utils/storageimportconstantfrom/utils/constantimport{isHttp,isEmpty}from/utils/validateimport{login,logout,getInfo}from/api/loginimport{getToken,setToken,removeToken}from/utils/authimportdefAvafrom/static/images/profile.jpgconstbaseUrlconfig.baseUrlconstuser{state:{token:getToken(),id:storage.get(constant.id),name:storage.get(constant.name),nickName:storage.get(constant.nickName),avatar:storage.get(constant.avatar),roles:storage.get(constant.roles),permissions:storage.get(constant.permissions)// permissions: [].concat(storage.get(constant.permissions) || [])},mutations:{SET_TOKEN:(state,token){state.tokentoken},SET_ID:(state,id){state.idid storage.set(constant.id,id)},SET_NAME:(state,name){state.namename storage.set(constant.name,name)},SET_AVATAR:(state,avatar){state.avataravatar storage.set(constant.avatar,avatar)},SET_ROLES:(state,roles){state.rolesroles storage.set(constant.roles,roles)},SET_PERMISSIONS:(state,permissions){state.permissionspermissions storage.set(constant.permissions,permissions)},SET_NICKNAME:(state,nickName){state.nickNamenickNamestorage.set(constant.nickName,nickName)}},actions:{// 登录Login({commit},userInfo){constusernameuserInfo.username.trim()constpassworduserInfo.passwordconstcodeuserInfo.codeconstuuiduserInfo.uuidreturnnewPromise((resolve,reject){login(username,password,code,uuid).then(res{setToken(res.token)commit(SET_TOKEN,res.token)resolve()}).catch(error{reject(error)})})},// 获取用户信息GetInfo({commit,state}){returnnewPromise((resolve,reject){getInfo().then(res{constuserres.user console.log(user,user)console.log(JSON_user,JSON.stringify(user))letavataruser.avatar||if(!isHttp(avatar)){avatar(isEmpty(avatar))?defAva:baseUrlavatar}constuserid(isEmpty(user)||isEmpty(user.userId))?:user.userIdconstusername(isEmpty(user)||isEmpty(user.userName))?:user.userNameconstnickName(isEmpty(user)||isEmpty(user.nickName))?:user.nickName console.log(nickName,nickName)if(res.rolesres.roles.length0){commit(SET_ROLES,res.roles)commit(SET_PERMISSIONS,res.permissions)}else{commit(SET_ROLES,[ROLE_DEFAULT])}commit(SET_ID,userid)commit(SET_NAME,username)commit(SET_AVATAR,avatar)commit(SET_NICKNAME,nickName)resolve(res)}).catch(error{reject(error)})})},// 退出系统LogOut({commit,state}){returnnewPromise((resolve,reject){logout(state.token).then((){commit(SET_TOKEN,)commit(SET_ROLES,[])commit(SET_PERMISSIONS,[])removeToken()storage.clean()resolve()}).catch(error{reject(error)})})}}}exportdefaultuser2.constant.jsconstconstant{avatar:user_avatar,id:user_id,name:user_name,nickName:nick_name,roles:user_roles,permissions:user_permissions}exportdefaultconstant3.getter.jsconstgetters{token:statestate.user.token,avatar:statestate.user.avatar,id:statestate.user.id,name:statestate.user.name,nickName:statestate.user.nickName,roles:statestate.user.roles,permissions:statestate.user.permissions}exportdefaultgetters4.storage.jsimportconstantfrom./constant// 存储变量名letstorageKeystorage_data// 存储节点变量名letstorageNodeKeys[constant.avatar,constant.id,constant.name,constant.roles,constant.permissions,constant.nickName]conststorage{set:function(key,value){if(storageNodeKeys.indexOf(key)!-1){lettmpuni.getStorageSync(storageKey)tmptmp?tmp:{}tmp[key]value uni.setStorageSync(storageKey,tmp)}},get:function(key){letstorageDatauni.getStorageSync(storageKey)||{}returnstorageData[key]||},remove:function(key){letstorageDatauni.getStorageSync(storageKey)||{}deletestorageData[key]uni.setStorageSync(storageKey,storageData)},clean:function(){uni.removeStorageSync(storageKey)}}exportdefaultstorage5.使用scriptimportstoragefrom/utils/storageimportconstantfrom/utils/constantexportdefault{data(){return{baseFormData:{name:storage.get(constant.nickName),id:storage.get(constant.name),}}},methods:{}}/script或者this.$store.state.user.nickName