Реагировать повторно подключить клиента сокета после изменения состояния - PullRequest
0 голосов
/ 10 марта 2020

У меня есть сокет с промежуточным программным обеспечением и некоторыми событиями

В файле конфигурации магазина я установил и подключил свой сокет к URL-адресу по умолчанию

import createSocketIoMiddleware from 'redux-socket.io';
import io from 'socket.io-client';
...
let socket = io('http://127.0.0.1:4000');
let socketIoMiddleware = createSocketIoMiddleware(socket, "server/");

И создайте магазин с помощью промежуточное ПО для сокетов

let store = createStore(
    persistedReducer,
    applyMiddleware(
        thunk,
        socketIoMiddleware,
        ...
    )
)

И я экспортирую хранилище с сокетом

export {
    store,
    persistor,
    socket,
}

Я пытаюсь определить на своей странице параметров приложения настройку URL сокета

Внутри компонента в моем приложении я создал текстовое поле с URL-адресом сервера

Я получаю значение по умолчанию из магазина с mapstatetoprops

<TextField ... value={this.props.serverUrl} onChange={(e) => this.onServerUrlChange(e.target.value)}/>

Внутри функции, вызываемой при изменении текста, я хотел бы для повторного подключения сокета с заданным URL-адресом, указанным в текстовом поле

Я импортирую магазин из файла конфигурации магазина

Я также обновляю магазин

onServerUrlChange = (serverUrl) => {
    this.props.setServerUrl(serverUrl)
    socket.disconnect()
    socket.connect(serverUrl)
}

Но сокет не воссоединяется с правильным URL-адресом

Есть ли способ сделать это? Большое спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...