it-swarm.com.de

Wie kann man den Eslint-Fehler "bevorzugen-destrukturieren" beheben?

Ich wollte ein Objektliteral in ES6 folgendermaßen verkürzen:

const loc = this.props.local;

Der Grund ist, dass loc.foo(); viel einfacher einzugeben ist als this.props.local.foo();.

Aber jetzt beschwert sich ESLint:

Objektzerstörung verwenden: Vorzugsbehandlung

Ich habe die Fehlerbeschreibung auf eslint.org gelesen aber ich verstehe das nicht. Sie haben ein Beispiel, das meinem Code sehr ähnlich sieht, aber ihre scheinen in Ordnung zu sein?

var foo = object.bar;

Wie kann ich den Fehler beheben, ohne ihn in der .eslintrc-Datei zu ignorieren?

27
Timo

Ändern Sie Ihren Code von:

const local = this.props.local;

zu: 

const { local } = this.props;

Sie sind gleichwertig und Sie können local.foo() auf dieselbe Weise aufrufen. mit der Ausnahme, dass das zweite Objekt zur Zerstörung von Objekten verwendet wird.

57
Badis Merabet

Es ist ein neues Konstrukt in ES 6, mit dem Sie die Eigenschaften eines zuzuordnenden Objekts zuordnen können. Sie benötigen folgende Syntax:

const { local: loc } = this.props

das übersetzt in: "eine konstante loc deklarieren und ihr den Wert der Eigenschaft local von this.props zuweisen".

3
ilmirons

Es sagt dir zu benutzen

const {props: {local: loc}} = this;
0
Bergi