я чего-то не понимаю, либо я просто плохо объяснил что мне надо ((
в общем. приложение - чат на websockets. Login - это стартовое окно, куда перебрасывает со всех роутов если пользователь не авторизован.
собственно, это просто input для имени и кнопка submit. при нажатии на нее сокет эмитит что-то вроде socket.emit('login', this.state.name);
в конструкторе Login сокет слушает событие 'login-status', которым сервер отвечает на вышеуказанный запрос сокета. в случае успеха (если имя свободно) программа устанавливает в состоянии что-то вроде {isLogin: true, .... } и меняет роут на Main
//я не нашел как еще можно программно изменить текущий роут в react-router v4
this.props.history.push('/main');
иначе выводит сообщение что такой пользователь уже в чате.
все это дело вроде работает, но сильно смущают наезды от реакта.
если что-то делаю не так, буду рад выслушать как надо!