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 ответ:
Две вещи, о которых вам нужно позаботиться
Во-первых, у вас есть имя компонента, не являющееся прописной буквой, а во-вторых, удалите экспорт по умолчанию из компонента, иначе, когда вы будете импортировать его по умолчанию, вы не будете использовать компонент, с которым вы связали хранилище
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);