Проблема транспаранта в Webpack с вложенным кодом, если еще используется машинописный код - PullRequest
0 голосов
/ 18 февраля 2020

В моем коде ReactJS (v15.6.2) я написал функцию, определенную ниже

private setLocalState(taxReturn: TaxDocument.ITaxReturn, compSettings: ICompanySettings, isAttested: boolean) {
        if (taxReturn.documentSettings.documentRetentionSetting.retentionPeriod <= 0) {
            if (isAttested) {
                taxReturn.documentSettings.documentRetentionSetting.retentionPeriod = compSettings.retentionSettingsModel.attestRetentionPeriod;
            }
            else {
                taxReturn.documentSettings.documentRetentionSetting.retentionPeriod = compSettings.retentionSettingsModel.retentionPeriod;
            }
        }

        this.setState({ retentionDuration: taxReturn.documentSettings.documentRetentionSetting.retentionPeriod, isAttested: isAttested });
    }

, которая является кодом машинописного текста (v2.4.1). Теперь, когда webpack (v2.5.1) собирается в производственной среде, я вижу приведенный выше код, скомпилированный в ES5, как определено ниже

t.prototype.setLocalState = function(e, t, n) {
            e.documentSettings.documentRetentionSetting.retentionPeriod <= 0 && (e.documentSettings.documentRetentionSetting.retentionPeriod = n ? t.retentionSettingsModel.attestRetentionPeriod : t.retentionSettingsModel.retentionPeriod),
            this.setState({
                retentionDuration: e.documentSettings.documentRetentionSetting.retentionPeriod,
                isAttested: n
            })
        }

Теперь проблема здесь очевидна, вложенное условие «if» становится частью первого оператор, где он выполняется как условие, а не оператор, из-за которого операция присваивания никогда не происходит. Без операции присваивания код ломается в других местах в моем приложении. Я также попытался использовать троичный оператор вместо if-else, но проблема все еще сохраняется.

Пожалуйста, предложите решение, при котором мне не нужно обновлять какую-либо библиотеку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...