了解NUXT中的上下文和应用程序方法

问题描述 投票:0回答:1

我正在尝试在plugins/axios.js中使用bugsnagClient及其notify方法,在plugins/bugsnag.js中有此代码

import Vue from "vue"
import bugsnag from "@bugsnag/js"
import bugsnagVue from "@bugsnag/plugin-vue"

// const bugsnagClient = bugsnag(`${process.env.BUGSNAG_API_KEY}`)
var bugsnagClient = bugsnag({
  apiKey: "",
  notifyReleaseStages: ["production"]
})

bugsnagClient.use(bugsnagVue, Vue)

我想将方法​​附加到appcontext为>>

export default ({ app }, inject) => {
  function bugsnagNotify(error) {
    return bugsnagClient.notify(new Error(error))
  }
  // Set the function directly on the context.app object
  app.bugsnagNotify = bugsnagNotify
}

而且我想在plugins/axios.js中使用它>

export default function({ store, app }) {
  if (store.getters.token) {
    console.log(app.bugsnagNotify("ss"))
    app.$axios.setToken(store.getters.token, "Bearer")
  } else {
    //app.$bugsnag.notify(new Error("Bearer tooken is missing in Axios request."))
  }
}

在此文件中,当我仅为app执行console.log时>

我可以看到bugsnagNotify: ƒ bugsnagNotify(error)

但是当我打电话给app.bugsnagNotify("error")时,只会出现诸如VM73165:37 TypeError: app.bugsnagNotify is not a function之类的错误>

我也在plugins/bugsnag.js中尝试过此操作

export default (ctx, inject) => {
  inject('bugsnag', bugsnagClient)
}

我只有一个错误,

app.$bugsnag.notify(new Error("Bearer tooken is missing in Axios request."))

[我正在尝试在plugins / axios.js中使用bugsnagClient及其通知方法。我在plugins / bugsnag.js中具有此代码。从“ vue”导入Vue。从“ @ bugsnag / js”导入bugsnag。 。

[如果要在一个插件内部注入上下文,并想在另一个插件内部使用该功能,则需要确保要注入的插件首先位于nuxt.config.js内部

...
plugins: [
  '~/plugins/bugsnag.js',
  '~/plugins/axios.js'
],
...
vue.js nuxt.js bugsnag
1个回答
0
投票

[如果要在一个插件内部注入上下文,并想在另一个插件内部使用该功能,则需要确保要注入的插件首先位于nuxt.config.js内部

...
plugins: [
  '~/plugins/bugsnag.js',
  '~/plugins/axios.js'
],
...
© www.soinside.com 2019 - 2024. All rights reserved.