我在vuejs-nuxt项目中使用SSR模式。因此,每当我尝试调用套接字事件时,都需要将用户ID从存储传递给该套接字。 GetUserUUID getter在所有其他API中均能正常工作。但是只有在从“plugin/socketio.js”文件中调用时,它才会失败。我需要一些帮助,以从 setter/getter 中获取数据。
plugins/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']
},
javascript - Vuejs-nuxt(SSR模式)无法通过插件内的getter获取UserUUID。它显示了GetUserUUID的未定义-LMLPHP
该图像是console.log(store.getters)的结果,但是我需要访问GetUserUUID。

最佳答案

请在nuxt.config.js中尝试

export default {
  plugins: [
    ....
    { src: '~/plugins/socketio.js', mode: 'client' }, // only on client side
    ...
  ]
}
在客户端运行您的插件

09-13 08:22