我有一个带有websockets的react / flux应用程序,工作正常。所有通信都发生在我的WebSocketUtils
文件中。每当我从服务器接收新数据作为推送事件时,我会触发action
并让整个Flux流程发生。最终导致我的观点重新出现。
各个视图通过Higher Order Components连接到我的商店。所有新数据都作为道具传递到我的view
。由于这些是可更改的,我使用这些道具并将它们设置为我的初始状态(which is ok)。
现在让我们说我有用户A
和用户B
查看我的应用程序的相同视图(当然是在不同的计算机上)。
A
编辑了一些数据B
也编辑了一些数据A
保存此新数据B
通过推送事件接收新数据,视图将重新呈现问题:用户B
丢失了已编辑但尚未保存的所有数据。
任何想法如何解决这个问题?
答案 0 :(得分:0)
用户WiredPrairie的评论是正确的。这不是React或Web Sockets问题,而是解决冲突的问题。
在那种情况下,您期望看到什么?您可能希望暂时保留这两个状态,直到您可以自动合并它们(不太可能)或向用户显示某种界面以查看其更改。
您还可以提示用户B用户A正在编辑他们的数据,只是为了让他们知情:)
精细的编辑方法会有所帮助 - 就像在Google电子表格中一样,用户通常一次只能编辑一个单元格,因此在您的情况下,您只能通过网络发送字段级信息(而不是记录级别) ),这将有助于避免冲突。
在一天结束时,这不是关于特定技术,而是关于您的应用程序的更多信息:您需要弄清楚您希望它的行为方式。