Nuxt:如何在不使用 localStorage 的情况下访问 rollbar.js 中的存储?

Nuxt: How to access store in rollbar.js WITHOUT using localStorage?

我正在使用 Nuxt 和 Rollbar。我在商店中有一个用户 ID 状态。
我的问题是,如何在不使用 localStorage 的情况下将此用户 ID 设置为 rollbar.js 中转换器函数中的自定义负载?

这是我的代码:

// plugins/rollbar.js
const transformer = function(payload) {
  payload.user_id = user_id_from_store // how to get this from store?
}
// store/index.js
export const state = () => ({
  userId: ''
})
export const mutations = {
  setUserId(state, userId) {
    state.userId = userId
  }
}
//components/MyComponent.vue
methods: {
  fetch() {
    const userId = fetchUserId()
    this.$store.commit('setUserId', userId)
  }
}

我尝试过的事情:

// plugins/rollbar.js
const getUserId = context => {
  const user_id = context.store.state.userId
  return user_id
}

const transformer = function(payload) {
  payload.user_id = getUserId()
}

export default getUserId

当我 console.log(context.store)getUserId 函数中,我得到了一个 Store 对象,但是在 transformer 函数中调用该函数抛出了 Rollbar: Error while calling custom transform() function. Removing custom transform(). TypeError: Cannot read property 'store' of undefined.

最后,由于 inject,OP 成功了,更多信息可在此处获得:https://nuxtjs.org/docs/2.x/directory-structure/plugins#inject-in-root--context

对于不直接进入 Vue 生态系统但我们希望在我们的 Nuxt 应用程序中工作的库来说确实需要这个。