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的主要内容,如果未能解决你的问题,请参考以下文章