componentWillRecieveProps不会导致渲染

时间:2019-04-03 21:44:51

标签: reactjs render

我制作了一个聊天应用程序,它使用redux和MongoDB来存储聊天记录, 当我和我的朋友登录该网站并写一条消息时,该消息来自该功能的还原:

 componentWillReceiveProps(nextProps) {
    if (nextProps.chat.chat) {
      this.setState({ chat: nextProps.chat.chat });
    }
  }

如果我是在最后写消息,则由于setState而导致重新渲染,并且可以看到DOM操作,但是我的朋友必须刷新页面才能看到我写的内容, 如何使页面呈现在他的页面上?

为使我的问题更清楚,我如何检查数据库是否已更新并导致重新呈现?

1 个答案:

答案 0 :(得分:2)

您需要利用订阅或套接字之类的工具来完成这项工作。您可以将套接字视为您/您的朋友(客户端)与服务器之间的开放连接。当您发送一条消息时,您的套接字库将发出一个事件,通知所有连接客户端已发送了一条消息,并有可能将新消息作为有效负载发送出去。

https://itnext.io/building-a-node-js-websocket-chat-app-with-socket-io-and-react-473a0686d1e1-该文章足以为您指明正确的方向。