Помогите решить проблему с Recoil библиотекой

Парни помогите решить проблему с Recoil библиотекой. Виснет приложение и оперативка взлетает до небес. При дебагинге проблем не обнаруживаю. Отправляют запрос за данными юзера и получаю ассинхронно данные. Проблема в строке setIsAuth(true). Не понятно, по документации я могу изменить значение используя хук useSetRecoilState. В принципе проблем с этим не должно возникать. Изменяю значение в сторе:const isAuthentication = atom({ key: 'authStatus', default: false }); При клике сохраняю значение логина и пароля и делаю ассинхронный запрос за данным и получаю их в значении responseAuth. Но здесь проблем нет.

c

onst Login = () => {
  const [nicknameInput, setNicknameInput] = useRecoilState(loginText);
  const [password, setPassword] = useRecoilState(loginPassword);
  const authDatas = useSetRecoilState(setAuthData);
  const responseAuth = useRecoilValue(stateQuery);
  const setIsAuth = useSetRecoilState(isAuthentication);
  const [errorAuth, setErrorAuth] =
    useState<SetStateAction<boolean | string>>(false);
  const [loginLoading, setloginLoading] = useState(false);

  const handleSubmit = (e: any) => {
    e.preventDefault();
    setloginLoading(true);
    authDatas({ nickname: nicknameInput, password });
  };

  useEffect((): void => {
    if (nicknameInput && password) {
      const { success, message } = responseAuth;
      if (!success) {
        setErrorAuth(message);
        setIsAuth(false);
        setloginLoading(false);
      }
      setIsAuth(true);
      setloginLoading(false);
    }
  }, [responseAuth]);

store/index.js:

const loginText = atom({ key: 'loginText', default: '' });
const loginPassword = atom({ key: 'loginPassword', default: '' });
const isAuthentication = atom({ key: 'authStatus', default: false });

const setAuthData = atom({
  key: 'setAuthData',
  default: { nickname: '', password: '' }
});

const stateQuery = selector({
  key: 'stateQuery',
  get: async ({ get }) => {
    const { nickname, password } = get(setAuthData);
    const response = await loginDataDB({ nickname, password });
    const { success, token, nickname: responseNick } = response.data;
    if (!success) {
      return {
        success,
        message: `This login or password is not correct. Please repeat user data or
      switch to register form`
      };
    }
    authLocalStorage.setStorage(token, responseNick);
    return { success, message: 'OK' };
  }
});

Ответы (0 шт):