Vuex / Vue -Router - передача auth: идентификатор пользователя из хранилища vuex в vue -router param-link-link - PullRequest
0 голосов
/ 15 января 2020

Можно ли передать текущий зарегистрированный идентификатор пользователя на params ссылки на маршрутизатор?

Это мой текущий код, и я хочу отобразить информацию на странице на основе params id

маршруты. js

  { 
    path: '/objective/employee/:id', 
    name: 'employee-objective', 
    component: () => import('@/views/EmployeeObjective'),
    meta: { requiresAuth: true }
  },

Компонент. vue

    created () {
      this.$store.dispatch('authUserInformation')
    },

    computed: {
      loggedIn () {
        return this.$store.getters.loggedIn
      },
      authUser () {
        return this.$store.state.authUser
      }
    }

маршрутизатор -линк

<router-link :to="{ name: 'employee-objective', 
params: { 
  id: // this.$store.state.authUser <- does not work
      // authUser[0].id <- does not also work
}}">
Click Here
</router-link>

1 Ответ

1 голос
/ 15 января 2020

Кажется, проблема в доступе к хранилищу, потому что по умолчанию this.$store внедряется в компоненты, поэтому вы можете просто использовать $store в шаблонах, которые затем должны быть:

<router-link :to="{ name: 'employee-objective', params: { id: $store.state.authUser }}">

Однако в Для доступа к значениям состояния магазина рекомендуется использовать vuex's mapState Helper .

computed: {
  ...mapState([
    // map this.authUser to store.state.authUser 
    'authUser '
  ])
}

, поэтому вы можете использовать его следующим образом:

<router-link :to="{ name: 'employee-objective', params: { id: authUser }}">
...