2017-07-10 2 views
3

In Bezug dieser Codierungsmuster:Warum eine neue Component-Klasse für redux connect erstellen?

import React, { Component } from 'react'; 
import { connect } from 'react-redux'; 
import Thing from '../components/Thing'; 

class ThingContainer extends Component { 
    render() { 
    return <Thing {...this.props} />; 
    } 
} 

function mapStateToProps(state) { 
    ... 
} 

export default connect(mapStateToProps)(ThingContainer); 

es eine Komponente (Sache), 2) erzeugen eine weitere Komponente (ThingContainer was technisch keinen Behälter) Klasse zu machen, dass die erste Komponente, und schließlich unter Verwendung So 1) importiert verbinden, um den Container endgültig zu exportieren.

Was ist der Unterschied, wenn Sie Schritt 2 überspringen und einfach die importierte Komponente (Thing) direkt zum Exportieren des Containers verwenden?

Antwort

3

Ja, diese Datei sieht aus, als wäre sie etwas unnötig. Die Komponente class ThingContainer tut nichts weiter, als Requisiten an <Thing> weiterzuleiten, was genau das ist, was die von connect erzeugten Wrapper-Komponenten bereits tun. Also, das ist nutzlos - die Datei sollte nur export default connect(mapState)(Thing), und es würde genau das gleiche ohne die zusätzliche ThingContainer Definition funktionieren.

Verwandte Themen