В моем коде 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, но проблема все еще сохраняется.
Пожалуйста, предложите решение, при котором мне не нужно обновлять какую-либо библиотеку