重新加载(重新安装)反应子组件

时间:2018-11-06 21:33:48

标签: reactjs spring-boot spring-websocket stomp

是否可以重新加载/重新安装React组件?我有一个简单的应用程序在春季启动作出反应。我已经通过网络套接字(踩踏)实现了简单的通知。在反应中,我正在使用SockJSClient这样的组件:

<SockJsClient url='http://localhost:8080/voting-socket' topics={['/queue/notification', '/user/queue/notification']}
                          onMessage={this.onMessageReceived} onConnect={this.onConnect} debug headers={{Authorization: "Bearer " + localStorage.getItem(ACCESS_TOKEN)}}/>

当我以访客身份进入我的应用程序(然后套接字无需身份验证即连接到Spring Boot应用程序)并登录时,就会出现问题。 Web套接字连接保持不变(未经身份验证)。它仅在我在浏览器中单击刷新按钮时起作用(然后重新构建整个dom和网络套接字)。所以我的问题是我可以手动重建/重新连接sockjs组件吗?

1 个答案:

答案 0 :(得分:2)

为了触发子组件更新,应更新父组件状态。为了触发组件重新安装,key道具可以更新,例如:

<SockJsClient key={this.state.auth} ... />