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)
}
}
我尝试过的事情:
- 在 rollbar.js 中,创建并导出一个以上下文对象为参数的函数。然后在transformer函数中调用这个函数得到user_id:
// 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 应用程序中工作的库来说确实需要这个。
我正在使用 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)
}
}
我尝试过的事情:
- 在 rollbar.js 中,创建并导出一个以上下文对象为参数的函数。然后在transformer函数中调用这个函数得到user_id:
// 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 应用程序中工作的库来说确实需要这个。