Vuejs-nuxt(s-s-r 模式)无法通过插件内部的 getter 获取 UserUUID。它显示未定义的 GetUserUUID

Posted

技术标签:

【中文标题】Vuejs-nuxt(s-s-r 模式)无法通过插件内部的 getter 获取 UserUUID。它显示未定义的 GetUserUUID【英文标题】:Vuejs-nuxt (s-s-r Mode) not able to get UserUUID through getter inside plugins. It shows undefined for GetUserUUID 【发布时间】:2021-01-07 04:19:46 【问题描述】:

我在我的 vuejs-nuxt 项目中使用 s-s-r 模式。因此,每当我尝试调用套接字事件时,我都需要将用户 ID 从商店传递给该套接字。 GetUserUUID getter 在所有其他 API 中都能正常工作。但只有在从“plugin/socketio.js”文件调用的情况下才会失败。我需要一些帮助才能从 getter 中获取数据。

插件/socketio.js

export default async ( store, $axios ) => 
   console.log(store.getters.GetUserUUID,"Current User UUID which is showing undefined");

function listenStock( channelName, eventName , callback) 
console.log("callback",callback);
window.Echo.channel(channelName).listen(eventName, callback);


//Fetch user data
listenStock(
 
  channelName: `BalanceUpdateEvent.$store.getters.GetUserUUID`,
  eventName: "BalanceUpdateEvent"
 ,
 ( data ) => 
   console.log(data, "socket data");
   try 
     store.dispatch("setUserBalance", data.data.userBalance);
    catch (ex) 
     console.log(ex);
   
 
);

nuxt.config.js

plugins: [
   src: '~/plugins/socketio', mode: 'client' 
]
echo: 
   plugins: ['~/plugins/socketio.js']
,

这个图片是console.log(store.getters)的结果,但是我需要访问GetUserUUID。

【问题讨论】:

【参考方案1】:

请在 nuxt.config.js 中试试

export default 
  plugins: [
    ....
     src: '~/plugins/socketio.js', mode: 'client' , // only on client side
    ...
  ]

在客户端运行你的插件

【讨论】:

在 nuxt.config.js 文件中,我也尝试使用“s-s-r: false”,但它对我不起作用。

以上是关于Vuejs-nuxt(s-s-r 模式)无法通过插件内部的 getter 获取 UserUUID。它显示未定义的 GetUserUUID的主要内容,如果未能解决你的问题,请参考以下文章

Angular Universal (s-s-r) 错误:无法在视图目录中查找视图“索引”

无法在 s-s-r 中执行 https 请求

使用 s-s-r 时无法在 vue3 中使用异步组件

将 Nuxt JS s-s-r 应用程序部署到 Google Cloud App Engine 标准

NextJs s-s-r 无法识别移动设备的 CSS 媒体查询

Meteor/s-s-r/Apollo 客户端 - 尝试使用 Apollo 设置 s-s-r 并没有找到 fetch