2017-06-10 15 views
1

mapStateToPropsを使用してストアに登録されているコンテナを作成しようとしています。私は、このファッションただし、mapStateToPropsは一度も呼ばなっていませんmapStateToPropsがまったく呼び出されない

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

にレデューサーを使用して状態を変更することができています。あなたがなるときはどこでそれ以外の場合は、あなたが

初の世話をする必要がありますコンポーネント名は大文字であることと、第二の成分からの輸出のデフォルトを削除しないで持っている間違った

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

「myContainer」ではなく「myComponent」を使用していますか?両方をエクスポートするべきではありません。特に 'myComponent'をデフォルトとしてエクスポートしている場合。 – Sulthan

+0

マイナーディテール:反応コンポーネント名を大文字にすると思われるので、代わりに「MyComponent」にする必要があります。 –

+0

@Sulthan mapStateToPropsはそれが一度でも呼び出されないのですか? – alchemist95

答えて

2

2つのことをつもりですデフォルトでインポートすると、ストアに接続したコンポーネントは使用しません

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

これはうまくいった!ありがとう – alchemist95

関連する問題