es lint '' присвоено значение, но оно никогда не использовалось ', хотя я использовал его - PullRequest
0 голосов
/ 03 ноября 2018

У меня есть функция, подобная приведенной ниже, в которой isformValid декальдируется как let и использует его в блоке if и изменяет его значение в соответствии с условием.

validateForm(validationErrors, formData) {
        let validationRules = this.state.dynamicJourneyData[this.state.currentStepName].validationRules;
        let isFormValid = true;
        let fullErrorList = [];
        validationRules.rules.forEach((rule) => {
            let errorList = this.evaluateRule(rule, formData);
            if (errorList.length > 0) {
                fullErrorList = fullErrorList.concat(errorList);
            }
        });
        let finalErrorList = [];
        let errorKeys = [];
        fullErrorList.filter((error) => errorKeys.indexOf(error.id) < 0).forEach((error) => {
                finalErrorList.push(error);
                errorKeys.push(error.id);
        }); 
        if (finalErrorList.length > 0) {
            isFormValid = false;
            if (finalErrorList.length === 1) {
                validationErrors.messageTitle = validationErrors.messageTitle
                    .replace('@count', finalErrorList.length)
                    .replace('were', 'was')
                    .replace('errors', 'error');
            } else {
                validationErrors.messageTitle = validationErrors.messageTitle.replace('@count', finalErrorList.length);
            }
            validationErrors.messageBody = finalErrorList; /*(fullErrorList.map(error=>error.label)).toString();*/
        }
        return finalErrorList;
 }

Я мог видеть ошибку eslint, поскольку 'isFormValid' присваивается значение, но он никогда не использовался ', хотя я использовал его в блоке if.

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Из документов ESLint:

https://eslint.org/docs/rules/no-unused-vars

Переменные, которые объявлены и не используются нигде в коде, являются наиболее скорее всего ошибка из-за неполного рефакторинга. Такие переменные занимают пробел в коде и может привести читателей в замешательство.

В вашем случае, isFormValid просто присваивается значение два раза. Использование его означало бы использовать его в чем-то вроде условия или цикла.

0 голосов
/ 03 ноября 2018

Документы ESLint описывают это довольно хорошо (https://eslint.org/docs/rules/no-unused-vars):

// Write-only variables are not considered as used.
var y = 10;
y = 5;

Вы пишете в isFormValid два раза (во время инициализации и в блоке if), но значение, хранящееся в переменной, никогда не читается, что вызывает ошибку linting. Значение, сохраненное в локальной переменной, отбрасывается, когда функция возвращается. Поскольку значение никогда не читается и не возвращается, оно ничего не меняет в результате вычисления. Кажется, вам вообще не нужна эта переменная в вашем коде.

...