mapStateToProps не вызывается вообще [дубликат]


На этот вопрос уже есть ответ здесь:

Я пытаюсь создать контейнер, который подписан на магазин, используя mapStateToProps. Я могу изменить состояние, используя редукторы таким образом

export default function firstReducer(state={}, action) {
    switch(action.type){
        case 'ADD_USERNAME':
            return Object.assign({}, state, {
                username: action.payload
            });
        default:
            return state;
    }
}
Однако mapStateToProps не вызывается ни разу. Где я нахожусь Я иду неправильно
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);
1 2

1 ответ:

Две вещи, о которых вам нужно позаботиться

Во-первых, у вас есть имя компонента, не являющееся прописной буквой, а во-вторых, удалите экспорт по умолчанию из компонента, иначе, когда вы будете импортировать его по умолчанию, вы не будете использовать компонент, с которым вы связали хранилище

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);