React не отслеживает изменения, происходящие в любой случайной переменной, будь то переменная a
, поэтому пользовательский интерфейс не будет обновляться автоматически. Чтобы получить желаемую функциональность, здесь можно использовать ловушку useState
.
Для этого импортируйте функцию useState.
import {useState} from 'react'
Внутри функции используйте ее так:
function ServerTest() {
const [ valueA, setValueA ] = useState();
Начальное значение для valueA также может быть передано
const [ valueA, setValueA ] = useState(initialState);
valueA
будет содержать текущее состояние, поэтому используйте его в операторе возврата
return (<div>a: {valueA}</div>)
Теперь, когда данные с сервера доступны, используйте setValueA
, чтобы обновить значение valueA
subscribe(client, 'admin', queue, (payload: {}) => {
setValueA(payload.UserInfo.userId);
. При этом response автоматически обновит пользовательский интерфейс, чтобы он соответствовал текущему состоянию 'valueA'