无法使用带有 redux-toolkit 的 socketIO 获取对象内函数的值
Posted
技术标签:
【中文标题】无法使用带有 redux-toolkit 的 socketIO 获取对象内函数的值【英文标题】:Can't get the value of a function inside an object using socketIO with redux-toolkit 【发布时间】:2022-01-16 05:13:04 【问题描述】:我正在使用带有套接字 io 的 redux 工具包,但无法从服务器获取值返回。我尝试将值分配给 res 数组,但数组长度仍为 0
let res = []
socket.emit("users")
socket.on("users", (users) =>
res.concat(users)
users.forEach(user =>
const username, userID = user
res.push( username: username, userID: userID )
)
)
return res;
)
The array length is equal 0 but it's look like this
[enter image description here][1]
[1]: https://i.stack.imgur.com/f0KdF.png
【问题讨论】:
【参考方案1】:这个发射函数socket.emit("users")
,没有为socket.on("users", (users) => //some code )
传递任何用户数据。
在执行socket.emit("user")
时,您必须将数据传递给函数,以便在事件回调中将其作为函数的第一个参数。所以 emite 函数会是这样的 socket.emit("users", userData)
这里 userData
是包含用户数组的变量
【讨论】:
实际上在服务器端我已经发送了值。如果您在我的问题上看到带有链接的图像,则 res 数组被分配了一些奇怪的值,但不在数组内 socket.io/get-started/private-messaging-part-1 我正在这样做,但是在 Vue 中使用 react 而不是 Vue,他们使用 initReactiveProperties(user)socket.on("users", (users) => users.forEach((user) => user.self = user.userID === socket.id; initReactiveProperties(user); ); // put the current user first, and then sort by username this.users = users.sort((a, b) => if (a.self) return -1; if (b.self) return 1; if (a.username < b.username) return -1; return a.username > b.username ? 1 : 0; ); );
分配变量以上是关于无法使用带有 redux-toolkit 的 socketIO 获取对象内函数的值的主要内容,如果未能解决你的问题,请参考以下文章
Redux-Toolkit = 无法使用 useSelector 显示 API 响应数据
WebStorm 中的 Redux-toolkit 操作参数
“AsyncThunkAction”Redux-toolkit 类型上不存在属性“then”
带有tensorflow gpu的docker - ImportError:libcublas.so.9.0:无法打开共享对象文件:没有这样的文件或目录