1 - При таком подходе вы вызываете setAppCode()
в момент рендеринга компонента. Так как это функция useState
, она выполняет повторную визуализацию компонента. Затем он перерисовывается и снова вызывает setAppCode()
(бесконечно l oop).
2 - (просто чтобы прояснить) Так как вы используете http-запрос, вы сможете получать уведомления только от серверной части, если вы об этом попросите. Вы спрашиваете об этом только один раз (в момент рендеринга компонента (используя useEffect)). Для того, чтобы уведомления обновлялись динамически, вы должны использовать некоторую систему pushNotifications.
3 - Ваша переменная уведомления является массивом. Так что вы не можете просто получить доступ к уведомлению о собственности. Вам нужно получить доступ к одному из объектов, который находится внутри вашего массива, в моем примере я получу доступ к первому.
Чтобы решить его, я бы просто вызвал ваш оператор switch после запроса API:
api.get(`/v1/admin/announcements/${guid}`)
.then(({ data: notifications }) => {
setNotify(notifications);
switch (notify[0].appcode) {
case 0:
return setAppcodeValue('Todos');
break;
case 1:
return setAppcodeValue('Associados');
break;
case 2:
return setAppcodeValue('Não Associados');
break;
default:
break;
}
})
Espero ter ajudado:)