Проблема в том, что React не знает, что ваша переменная cl
изменилась (потому что это не состояние)
Кроме того, вам вообще не нужно cl
.
Просто оберните начальное соединение в useEffect и вызовите setValueA
, когда получите данные.
function ServerTest(){
const queue = v4();
const [valueA, setValueA]= useState()
useEffect(() => {
const client = createClient();
client.onConnect = function () {
subscribe(client, 'admin', queue, (payload:any) => {
if(payload.Conversations!==null){
setValueA(payload.Conversations.map((item:any)=>item.name))
}
});
publish(client, 'api', 'admin', queue, {});
}
client.activate();
}, [])
return (
<div>A: {valueA} </div>
)
}