Javascript 在使用Socket IO从数据库获取数据时,使用哪种生命周期方法进行React
我将数据存储在数据库中,每当数据更新时,它就会向客户端发送一个事件 这里是服务器端Javascript 在使用Socket IO从数据库获取数据时,使用哪种生命周期方法进行React,javascript,node.js,reactjs,socket.io,Javascript,Node.js,Reactjs,Socket.io,我将数据存储在数据库中,每当数据更新时,它就会向客户端发送一个事件 这里是服务器端 socket.on("note delete", function(data) { rooms .findOneAndUpdate( { _id: data.roomId }, { $pull: { notes: { _id: data._id } } } ) .then(docs => {
socket.on("note delete", function(data) {
rooms
.findOneAndUpdate(
{
_id: data.roomId
},
{ $pull: { notes: { _id: data._id } } }
)
.then(docs => {
rooms.find({ _id: data.roomId }, function(err, docs) {
socket.emit("remainingnotes", docs);
});
})
.catch(err => {
console.log("err", err.stack);
});
remainingnotes在客户端发出。现在我想将其内容实时更新为this.state/MobX state。一旦数据库发生更改,我希望我的存储值相应地更新
我该怎么做
// Client Side
socket.on("remainingnotes", function(data) {
ChatStore.msgs = data[0].conversation; // ChatStore is my MobX store.
});
我曾尝试在构造函数和ComponentDidMount中添加此事件,但都没有更新。有没有办法监听客户端上的事件以进行React?数据层应该与React层分开,React层实际上是一个视图层 使用React+MobX,您将执行以下操作: MOBX商店:
- 连接到websocket/管理连接
- 从视图/反应层接收UI事件
- 更新存储或
- 发送websocket事件(取决于UI事件)
- 从websocket接收事件并相应地更新存储
- 每当数据更改时,从MobX存储接收道具
- 将事件发送到MobX存储