Переменной присваивается значение, но она никогда не используется при ее объявлении в объекте данных Vue и использовании в методе

Я получаю сообщение об ошибке в окне cmd webpack, когда запускаю npm run dev в проекте.

Вот код и сообщение об ошибке, которое я получаю, в частности, код, относящийся к родительскому компоненту Vue верхнего уровня, в котором есть панель навигации, детали которой меняются в зависимости от того, вошел ли пользователь в систему:

Код

<script>
// import required components
import EventBus from './components/EventBus'
import router from './router/index.js'
import jwtDecode from 'jwt-decode'

export default {
  data () {
    const token = localStorage.usertoken
    const decoded = jwtDecode(token)
    return {
      first_name: '',
      surname: '',
      email: '',
      created: ''
    }

    return {
      auth: false
    }

    try {
      this.login()
    } catch (error) {
      console.info('Not currently signed in')
    }
  },

  methods: {
    logout () {
      this.first_name = ''
      this.surname = ''
      this.email = ''
      this.created = ''
      localStorage.removeItem('usertoken')
      this.auth = false
      router.push({
        name: 'login'
      })
    },

    login () {
      this.first_name = this.decoded.f_name
      this.surname = this.decoded.s_name
      this.email = this.decoded.email
      this.created = this.decoded.created
    }
  },

  mounted () {
    EventBus.$on('logged-in', status => {
      this.auth = status
      this.login()
    })
  }
}
</script>

И сообщение об ошибке

  ✘  http://eslint.org/docs/rules/no-unused-vars  'decoded' is assigned a value but never used
  src\App.vue:60:11
      const decoded = null

Мне кажется, что decoded используется в login(), есть идеи?

Ну, вы не используете decoded — это похоже на локальную переменную в data.

Jack Bashford 07.04.2019 07:26

1) decoded не является частью возвращаемого значения data, поэтому оно не будет доступно в this.decoded. Неиспользуемая локальная переменная — причина, по которой вы получаете предупреждение. 2) У вас есть несколько операторов return в data. Ничто после первого не будет оцениваться. 3) Вы не хотите пытаться вызывать login() в своей data функции. Переместите его в created или mounted

Phil 07.04.2019 07:29

@Фил Спасибо. Извините за мое невежество, но как мне получить доступ к декодированному, а также объявить его как константу со значением декодированного токена?

Adam Cole 07.04.2019 07:33
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
8 549
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вам нужно изменить метод данных

Поскольку ваши данные являются функцией, и то, что выставляется, является возвращаемым значением. вам нужно вернуть декодирование из data(), чтобы использовать декодирование в вашем методе входа в систему.

 data () {
        const token = localStorage.usertoken
        const decoded = jwtDecode(token)
        return {
          first_name: '',
          surname: '',
          email: '',
          created: '',
          decoded: decoded
        }

Другие вопросы по теме