Как сделать алерты на redux toolkit

Рейтинг: 0Ответов: 1Опубликовано: 23.06.2023

У меня есть такой код на react ts, redux toolkit:

if (error) {
    console.log("Ошибка")
  }
  else {
    console.log("Успешно")
  }

Как мне сделать так, чтобы вместо консоль лога я вызывал функцию, которая находится в другом файле, в нее я передавал, например, visibility={true} и type={error (или succes)}, и таким образом в той функции с помощью редакса менялся глобальный объект alert с полями visibility и type.

Я хочу такую функцию, которую я могу вызвать, например, в try..catch или внутри другой функции или хука, максимально переиспользуемую, потому что она будет использоваться во многих местах.

Пробовал ставить вместо консоль лога useDispatch, чтобы менять состояние, но оно не хочет так просто работать, ругается, что я хуки вызываю внутри функций, например, или внутри try..catch

Помогите пожалуйста, уже не знаю что делать.

Ответы

▲ 0Принят

Если не ошибаюсь, ваша ошибка заключается в том, что функцию, которая обращается к store и меняет глобальный объект alert вы попытались вызвать внутри другой функции с помощью useDispatch. У вас появлется ошибка о том, что нельзя вызывать хуки внутри функциий и это так, хуки необходимо вызывать непременно внутри компонентов, если у вас функция внутри компонента, то useDispatch внутри функции не сработает. Вместо этого вам необходимо приравнять dispatch=useDispatch() в компоненте и в дальнейшем использовать dispatch() внутри функций для того, чтобы вызывать функцию, который будет менять глобальный объект alert. То есть:dispatch(ваша функция которая меняет глобальный объект). Если я где-то ошибся, думаю мне дадут об этом знать.