useEffect почему то не делает setDisabled после завершения формы пока не сделаешь еще одно действие?

useEffect(() => {
        const validate = () => {
            if (name.length === 0  || name ==='') {
                setErrors({...errors, name: true});
            } else {
                setErrors({...errors, name: false});
            }
            const emailCheckv2 = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
            if (email.length < 1 || !emailCheckv2.test(email)) {
                setErrors({...errors, email: true});
            } else {
                setErrors({...errors, email: false});
            }
            if (password.length <= 5) {
                setErrors({...errors, password: true});
            } else {
                setErrors({...errors, password: false});
            }
            if (country === '') {
                setErrors({...errors, country: true});
            } else {
                setErrors({...errors, country: false});
            }
            if (gender === '') {
                setErrors({...errors, gender: true});
            } else {
                setErrors({...errors, gender: false});
            }
            console.log('agreement', agreement);
            if (!agreement) {
                setErrors({...errors, agreement: true});
            } else {
                setErrors({...errors, agreement: false});
            }

            for (const [key, value] of Object.entries(errors)) {
                if(value || !key) {
                        setDisabled(true);
                        return false;
                    }
            }
            return true;
        };

        const check = validate();

        if(check && agreement) {
            setDisabled(false);
        }
        else {
            setDisabled(true);
        }
        // eslint-disable-next-line react-hooks/exhaustive-deps
    }, [name, email, password, gender, country, agreement, disabled]);

useEffect почему то не делает setDisabled после завершения формы пока не сделаешь еще одно действие? введите сюда описание изображения вот на картинке видно что не открывает кнопку пока не сделаешь еще изменения какого либо поля


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