Здравствуйте!
Начал изучать Redux для React. Сразу столкнулся с проблемой общих данных для разных компонентов. Привожу пример кода, который у меня не работает:
Изначально, есть файл index.js, где создано хранилище redux и передано через Provider во все компоненты:
<Provider store={this.state.store}>
<Header />
<Body />
//Здесь ещё другие компоненты
</Provider>
Далее, в компоненте Header я пытаюсь в методе render получить текущие состояние props:
class Header extends React.Component {
render() {
console.log(JSON.stringify(this.props.store));
return ('');
}
}
export default connect(
store => ({
store: store
})
)(Header);
Но в консоли выводится лишь начальное состояние хранилища, а не то, которое я задал в другом компоненте. Если состояние хранилища обновить из другого компонента - то в другом компоненте можно увидеть обновление хранилища, а в Header всё так же будут старые начальные данные.
Пример обновления хранилища из другого компонента:
class Body extends React.Component {
componentDidMount() {
setTimeout(() => {
updateStore(1);
});
}
render() {
console.log(JSON.stringify(this.props.store));
return ('');
}
}
export default connect(
store => ({
store: store
}),
dispatch => ({
updateStore: (i) => {
dispatch({type: 'new', store: i});
}
})
)(Body);
Полагаю, ошибка в чём-то банальном.
Заранее спасибо.