Используйте константу в качестве имени свойства в шаблоне - PullRequest
0 голосов
/ 16 октября 2018

Я использую vuex и разделил файл для констант имен геттеров.Как лучше использовать эту константу в шаблоне файла * .vue?

// getter-types.js

export const CURRENT_USER_NAME = 'CURRENT_USER_NAME'

// store.js

const store = new Vuex.Store({
  state: {
    userName: ''
  },
  getters: {
    [CURRENT_USER_NAME]: state => {
      return state.userName
    }
  },
  // ...
})

Здесь я использую решение с ключевым словом _self .Могу ли я использовать что-то еще и иметь возможность изменить значение в getter-types.js без каких-либо ошибок.

// index-page.vue

<template>
<div>Hello, it works: {{_self[constants.CURRENT_USER_NAME]}}</div>
<div>Hello, it doesn't when I edit constant value later: {{CURRENT_USER_NAME}}</div>
<div>Hello, {{ ??? }}</div>
</template>
<script>
import { mapGetters } from 'vuex'
import { CURRENT_USER_NAME } from './getter-types'

export default {
  data () {
    return {
      constants: { // I can't use constant name directly, so create object
        CURRENT_USER_NAME
      }
    }
  },
  created () {
    console.log(this[CURRENT_USER_NAME]) // works fine
  },
  computed: {
    ...mapGetters([
      CURRENT_USER_NAME
    ])
  }
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...