gpt4 book ai didi

javascript - 为什么 Context 没有传递给我的 HOC

转载 作者:行者123 更新时间:2023-11-30 20:53:09 25 4
gpt4 key购买 nike

我有一个使用 HOC 的组件。 HOC 需要 this.context 但由于某些原因 this.context 没有被传递。我究竟做错了什么?型

组件:

import React, { Component } from 'react';
import withTracking from './hocs/withTracking';

class NamePage extends Component {
componentDidMount() {
console.log(this.context.mixpanel) // WORKS
}
render() {
return (
...
);
}
}

NamePage.contextTypes = {
mixpanel: PropTypes.object.isRequired
};

export default withTracking('View Page: NamePage')(NamePage);

临时

import { lifecycle } from 'recompose';

export function withTracking(eventTitle) {
return lifecycle({
componentDidMount() {
console.log(this.context.mixpanel) // UNDEFINED - fail-y?
}
});
}

export default withTracking;

console.log 正在返回 undefined 如果我在组件中输出,它会返回正确的位置。

我做错了什么?谢谢

最佳答案

ContextTypes 仅为 NamePage 组件指定,为了让您将它与 HOC 一起使用,您需要在 wrappedComponent 实例上指定它

const WrappedNamePage = withTracking('View Page: NamePage')(NamePage);

WrappedNamePage.contextTypes = {
mixpanel: PropTypes.object.isRequired
};

export default WrappedNamePage

关于javascript - 为什么 Context 没有传递给我的 HOC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47949698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com