首页 > 解决方案 > 反应上下文 - Context.Consumer 与 Class.contextType

问题描述

我正在学习一些新引入的 React.Context API,但我注意到它在多个示例中的使用存在一些不一致之处。有些使用原始的Context.Consumer HOC 方法,而有些(包括 React Docs)使用静态Class.contextType方法。

有什么区别以及为什么不一致?

标签: reactjsreact-context

解决方案


事实证明,静态 Class.contextType在 React v16.6.0 上新引入的,因为Context.Consumer方法在类组件上被证明是有问题的。此外,使用两者之间似乎确实存在一个主要区别,那就是静态 Class.Context 只允许您订阅单个上下文。

好消息是它们似乎都能可靠地监听 Co​​ntext 的变化,这意味着如果你只有一个 Context API,那么两者都足够好。


推荐阅读