2017-09-15 1 views
2

Ist es richtig, von einem Objekt Requisiten zu zerstören und sofort senden Sie es wie folgt aus: const mapStateToProps = state => ({ ...{ name, phone, shift} = state.employeeForm });Objekt Destrukturierung und sofort wieder

funktioniert ziemlich gut, aber meine IDE wird verrückt. Irgendein Rat?

Antwort

1

Sieht ziemlich gut aus. Da JavaScript-Syntax sich schnell entwickelt und große Syntaxvariationen bietet, holen IDEs immer noch auf.

0

Was ist mit der Destrukturierung über die Parameter der Funktion? Spread-Operator fängt die irrelevant Schlüssel als auch, im Grunde schafft es Kopie des Objekts:

// EDIT: Hinzugefügt zwei weitere Destrukturierung Beispiele, auch ich entdecken, dass Ihre Funktion mit gespreiztem Operator Variablen zu globalem Namensraum aus irgendeinem Grunde leckt, zumindest hier in der sO-snippet:

let state = { 
 
    form: { 
 
    name: 'test', 
 
    phone: 123, 
 
    shift: true, 
 
    irrelevant: false, 
 
    } 
 
}; 
 

 
(function() { 
 
    let fun2 = ({form: {name, phone, shift}}) => ({name, phone, shift}); 
 
    console.log('fun2', fun2(state)); 
 
})(); 
 

 
try { 
 
    console.log(name, phone, shift); 
 
} catch (e) { 
 
    console.log('no leak'); 
 
} 
 

 
(function() { 
 
    let fun3 = state => { 
 
    let {name, phone, shift} = state.form; 
 
    return {name, phone, shift}; 
 
    }; 
 
    console.log('fun3', fun3(state)); 
 
})(); 
 

 
try { 
 
    console.log(name, phone, shift); 
 
} catch (e) { 
 
    console.log('no leak'); 
 
} 
 

 
(function() { 
 
    let fun = state => ({ 
 
    ...{name, phone, shift} = state.form 
 
    }); 
 
    console.log('fun', fun(state)); 
 
})(); 
 

 
try { 
 
    console.log('leak:', name, phone, shift); 
 
} catch (e) { 
 
    console.log('no leak'); 
 
}

+0

Ja sicher, aber ich versuche, meine 'map' Funktion so einfach wie möglich zu halten, um die Möglichkeit, dass mein' state' wird in Zukunft geändert werden –

+0

Und du r 'fun4' ist eine ziemlich gute Lösung –

+0

Leider hat fun4 Variablen verwendet, die zum globalen Namensraum durchgesickert sind ... es ist komisch, oder? – Oskar

Verwandte Themen