鍍金池/ 問答/HTML/ 為什么在使用vuex過程中state中引用的router/.js文件的變量,一直

為什么在使用vuex過程中state中引用的router/.js文件的變量,一直是undefined?

為什么在使用vuex過程中state中引用的router/文件夾下的變量,一直是undefined?

目錄結(jié)構(gòu)如下:
src/router/constantRouter.js
src/store/vuex_modules/admin.js

參考代碼
constantRouter.js

import Home from '../views/home/index.vue'

// 靜態(tài)路由
import err401 from '../views/error/err401.vue'
import err404 from '../views/error/err404.vue'
import err500 from '../views/error/err500.vue'
import login from '../views/login/index.vue'
// 前言
import main from '../views/home/main.vue'

// 公共模塊測(cè)試
import uploadList from '../views/components/uploadList.vue'

// 注意 權(quán)限字段 authRule (嚴(yán)格區(qū)分大小寫)
const crm1 = [
  {
    path: '*',
    component: err404,
    hidden: true
  },
  {
    path: '/401',
    component: err401,
    name: '401',
    hidden: true
  },
  {
    path: '/404',
    component: err404,
    name: '404',
    hidden: true
  },
  {
    path: '/500',
    component: err500,
    name: '500',
    hidden: true
  },
  {
    path: '/login',
    component: login,
    name: '登錄',
    hidden: true
  },
  {
    path: '/',
    component: Home,
    redirect: '/readme',
    name: '首頁',
    hidden: true
  },
  {
    path: '/readme',
    component: Home,
    redirect: '/readme/main',
    icon: 'shouye',
    name: '前言',
    noDropdown: true,
    children: [
      {
        path: 'main',
        component: main
      }
    ]
  },
  {
    path: '/components',
    redirect: '/components/uploadList',
    component: Home,
    name: 'components',
    icon: 'tongyong',
    children: [
      {
        path: 'uploadList',
        name: '上傳圖片的展示',
        component: uploadList
      }
    ]
  }
]
export default crm1
export const tname = 'jerry'

admin.js

import { userInfo, login, logout } from '../../api/login'
import * as types from '../mutation-types'
import crm1, {tname} from '../../router/constantRouter'
import {
  getToken,
  setToken,
  removeToken,
  getAdminId,
  setAdminId,
  removeAdminId
} from '../../util/authUtils'
import { Message } from 'element-ui'

// initial state
const state = {
  adminId: getAdminId(), // id
  userName: 'admin', // 昵稱
  avatar: 'https://wx.qlogo.cn/mmopen/', // 頭像
  token: getToken(), // 登錄token
  authRules: [], // 權(quán)限列表
  routers: crm1 // 路由列表
}
console.log('debug4')
console.log(state)
console.log(state.routers)
console.log(tname)

相關(guān)的截圖
圖片描述

圖片描述

圖片描述

圖片描述

回答
編輯回答
蝶戀花

補(bǔ)充,我在src/router/下,又創(chuàng)建一個(gè)a.js 內(nèi)容和constantRouter.js 一模一樣,只是修改了變量名。
就可以引用成功。兩個(gè)文件同時(shí)存在,index.js 引用constantRouter.js ,而admin.js 引用a.js是可以有值的。
但是一旦 index.js 和admin.js 引用同一份文件constantRouter.js or a.js 之后,就不可以先顯示值了
感覺得出一個(gè)結(jié)論:

被作為router出現(xiàn)的內(nèi)容,在state中無法再引用

why????

==================================
我終于發(fā)現(xiàn)了問題,是我state中關(guān)于初始值的設(shè)置問題導(dǎo)致的。
問題關(guān)閉

2018年3月29日 04:16