2016-09-06 1 views

Antwort

3

Wenn Sie nichts dagegen haben eine Drittanbieter-Bibliothek verwenden, können Sie auch lodash die omit Funktion:

{ ..._.omit(this.props, ['className', 'id']) } 

Key Vorteil: Im Gegensatz Vorschlag der madox2, Sie nicht verschmutzen Ihren Umfang mit beliebigen Variablennamen nur um zu vermeiden, bestimmte Requisiten an Kinderkomponenten zu übergeben. Zum Zeitpunkt der Erstellung dieser Antwort haben Sie es auch nicht mit experimentellen ES.next-Funktionen zu tun.

16

Sie können Destrukturierung verwenden diesen Job zu machen:

const { className, id, ...newProps } = this.props; // eslint-disable-line 
// `newProps` variable does not contain `className` and `id` properties 

Da diese Syntax ist derzeit ECMAScript Vorschlag (Rest/Spread-Eigenschaften) Sie müssen Code transpile diese Funktion aktivieren (zum Beispiel babel verwenden).

+1

Das ist erstaunlich, aber gibt es eine einfache Möglichkeit, eslint nicht zu haben und dergleichen beschweren sich über eine unbenutzte Variablendeklaration mit diesem Muster (außer diese Regel zu deaktivieren)? – m90

+0

@madox das ist gut, aber eine Art von mir erfordert, Requisiten manuell zu verarbeiten, wo wie ich die Vorteile der Weitergabe alle von ihnen und nur diejenigen, die ich nicht benötigen im Gegensatz zu einschließlich diejenigen, die ich brauche – Ilja

+0

@ m90 benötigt Kommentar, der eslint für diese bestimmte Zeile deaktiviert – madox2

Verwandte Themen