Перезагрузить (перемонтировать) реагировать дочерний компонент - PullRequest
0 голосов
/ 07 ноября 2018

Можно ли перезагрузить / перемонтировать компоненты реакции? У меня есть простое приложение, сделанное в весенней загрузке и реагирующее. Я реализовал простые уведомления через веб-сокеты (stomp). В реакции я использую 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)}}/>

проблема возникает, когда я захожу в свое приложение в качестве гостя (затем сокет подключается к приложению весенней загрузки без аутентификации) и при входе в систему. Соединение с веб-сокетом остается прежним (я не аутентифицирован). Это работает только тогда, когда я нажимаю кнопку обновления в браузере (тогда весь дом и веб-сокеты перестраиваются). Итак, мои вопросы: могу ли я как-нибудь вручную перестроить / заново подключить компонент sockjs?

1 Ответ

0 голосов
/ 07 ноября 2018

Для запуска обновления дочернего компонента необходимо обновить состояние родительского компонента. Для запуска перемонтирования компонента можно обновить key prop, например ::

<SockJsClient key={this.state.auth} ... />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...