2017-06-10 2 views
1

Ich versuche, einen Container zu erstellen, der den Speicher mit MapStateToProps abonniert hat. Ich bin in der Lage, den Zustand mit Reduzierungen in dieser Art und WeisemapStateToProps wird überhaupt nicht aufgerufen

export default function firstReducer(state={}, action) { 
    switch(action.type){ 
     case 'ADD_USERNAME': 
      return Object.assign({}, state, { 
       username: action.payload 
      }); 
     default: 
      return state; 
    } 
} 

jedoch zu ändern, mapStateToProps ist nicht einmal genannt zu werden. Wohin gehe ich falsch

export default class myComponent extends React.Component{ 
    render(){ 
     return(
      <h1>this.props.userName</h1> 
     ) 
    } 
} 

function mapStateToProps(state){ 
    console.log("Hey"); 
    return{ 
     userName: state.username 
    }; 
} 

export const myContainer = connect(mapStateToProps, null)(myComponent); 
+0

Sind Sie sicher, dass Sie 'myContainer' und nicht 'myComponent' verwenden? Sie sollten nicht beide exportieren. Vor allem, wenn Sie 'myComponent' als Standard exportieren. – Sulthan

+0

Geringfügiges Detail: Ich denke, du solltest die Namen von Komponenten reaktionsfähig machen, also sollte es stattdessen 'MyComponent' sein. –

+0

@Sultan Ist das verantwortlich für MapStateToProps, die nicht einmal aufgerufen werden? – alchemist95

Antwort

2

Zwei Dinge, die Sie kümmern sich um

Zuerst nehmen müssen haben Sie Komponentenname nicht mit Großbuchstaben zu sein und zweitens die Exportstandard von der Komponente entfernen, andernfalls, wenn Sie werden Wenn Sie es als Standard importieren, würden Sie die Komponente, mit der Sie das Geschäft verbunden haben, nicht verwenden

class MyComponent extends React.Component{ 
    render(){ 
     return(
      <h1>this.props.userName</h1> 
     ) 
    } 
} 

function mapStateToProps(state){ 
    console.log("Hey"); 
    return{ 
     userName: state.username 
    }; 
} 

export default connect(mapStateToProps, null)(MyComponent); 
+0

Das hat funktioniert! Vielen Dank – alchemist95

Verwandte Themen