У меня есть React
приложение, которое использует react-redux
библиотеки. Он отлично работает, я получаю свой контекст store
, я могу отправлять действия. Красивый.Отсутствует контекст при использовании @connect
Теперь я столкнулся с проблемой. Я хочу объявить дочерний контекст в корневом компоненте и использовать его для передачи глобальной функции прямо в дочерние элементы.
export default class Root extends React.Component {
globalFunc() {
}
getChildContext() {
return {
globalFunc: this.globalFunc
};
}
render() {
return (
{ /* ChildComponent somewhere in here */ }
);
}
}
Root.childContextTypes = {
globalFunc: PropTypes.func
}
Проблема заключается в одном из детей я получаю пустой объект, когда я @connect
декоратора из react-redux
. Когда я удаляю декоратор, я правильно понимаю свой контекст. Почему Redux
удаляет контекст? Как сделать обходной путь?
@connect(mapStateToProps)
export default class ChildComponent extends React.Component {
constructor(props, context) {
super(props, context);
console.log(this.context); // EMPTY {}
}
render() {
// ...
}
}
ChildComponent.contextTypes = {
store: PropTypes.store.isRequired,
globalFunc: PropTypes.func
}
Что происходит, когда вы экспортируете после добавления contextTypes? например, в самом конце 'export default ChildComponent;' –
Такая же проблема возникает – Nickon