#javascript #vue.js #nuxt.js #inject
#javascript #vue.js #nuxt.js #впрыскивать
Вопрос:
Я решил впервые немного поиграть с nuxt с нуля до конца. и теперь я пытаюсь добавить плагины. плагин, который я пытаюсь добавить, предназначен для моего api. Но когда я его вводю, он выдает ошибку «инъекция не является функцией». Это мой код ниже. Все остальное работает, насколько мне известно.
import Vue from 'vue'
import axios from 'axios'
import get from 'lodash/get'
import cookies from 'js-cookie'
import { BASE_URL } from '../config/config'
export default (context, inject) => {
const saveToken = (token) => {
cookies.set('AuthToken', token)
}
const removeToken = () => {
cookies.remove('AuthToken')
}
const getToken = () => {
cookies.get('AuthToken')
}
const token = getToken() || ''
const config = {
baseURL: `${BASE_URL}/api/v1`,
params: {},
headers: {
Authorization: `Bearer ${token}`
}
}
const service = axios.create(config)
service.interceptors.response.use(
response => response,
(error) => {
// src of error.
const data = get(error, 'response.data', {})
Vue.$store.commit('notifications/setNotification', data)
}
)
const ApiService = {
...service,
removeToken,
saveToken
}
inject('ApiService', ApiService)
}
Ответ №1:
Итак, я смог это исправить. По-видимому, ошибка была вызвана тем, что я добавил плагин в массив модулей вместо массива плагинов, как предложено в документах Nuxt. После помещения его в плагины, а не в виде модуля, как я делал ранее, мой сервер разработки снова начал работать.