React SignalR обратные вызовы отсутствуют константы - PullRequest
0 голосов
/ 31 марта 2020

Я использую React с реакционными хуками и SignalR. У меня есть некоторые свойства consts, которые связаны с полями ввода

const [name, setEmployeeName] = useState<string>('');
const [id, setEmployeeId] = useState<string>('');
const [project, setProjectName] = useState<string>('');

И после настройки чата настройте соединение и подписки в использовании. метод со стороны сервера и введите здесь реализацию, все эти константы отсутствуют и являются ''.

Так что это if(id === employee.id) всегда ложно.

Для меня кажется, что мне нужно bind .this, но я не думаю, что у нас это есть в React.

1 Ответ

0 голосов
/ 31 марта 2020

Хорошо, поэтому, подумав, я понял, что это не очень хороший подход. Так что я подправил подписку. Связанное изменение ввода с этим методом:

function onIdChange(_id: string) {
    if(_id !== id) {
        hubConnection!.off(`updateEmployee/${id}`)
        setEmployeeId(_id)

        hubConnection!.on(`updateEmployee/${_id}`, (employee: Employee) => {
            setEmployeeName(employee.name)
            setProjectName(employee.project)
        })
    }
}

Так что теперь с сервера, когда я хочу вызвать метод с employeeerId, я уже установил подписку, и как только я его вызываю, мне больше не нужно сделайте оператор if.

...