Ich habe React
App, die react-redux
Bibliothek verwendet. Es funktioniert gut, ich bekomme meine store
Kontext, ich kann Aktionen versenden. Schön.Fehlender Kontext bei Verwendung von @connect
Jetzt habe ich ein Problem getroffen. Ich möchte Kindkontext in einer Wurzelkomponente erklären und es benutzen, um globale Funktion direkt in die Kinder zu übergeben.
export default class Root extends React.Component {
globalFunc() {
}
getChildContext() {
return {
globalFunc: this.globalFunc
};
}
render() {
return (
{ /* ChildComponent somewhere in here */ }
);
}
}
Root.childContextTypes = {
globalFunc: PropTypes.func
}
Das Problem ist in einem der Kinder, die ich leeres Objekt, wenn ich @connect
Dekorateur aus react-redux
haben. Wenn ich den Decorator entferne, bekomme ich meinen Kontext richtig. Warum entfernt Redux
den Kontext? Wie man eine Abhilfe schafft?
@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
}
Was passiert, wenn Sie exportieren nach contextTypes anhängt? zB ganz am Ende 'export default ChildComponent;' –
Das gleiche Problem tritt auf – Nickon