reactjs - 反应上下文 - Context.Consumer 与 Class.contextType
问题描述
我正在学习一些新引入的 React.Context API,但我注意到它在多个示例中的使用存在一些不一致之处。有些使用原始的Context.Consumer HOC 方法,而有些(包括 React Docs)使用静态Class.contextType方法。
有什么区别以及为什么不一致?
解决方案
事实证明,静态 Class.contextType是在 React v16.6.0 上新引入的,因为Context.Consumer方法在类组件上被证明是有问题的。此外,使用两者之间似乎确实存在一个主要区别,那就是静态 Class.Context 只允许您订阅单个上下文。
好消息是它们似乎都能可靠地监听 Context 的变化,这意味着如果你只有一个 Context API,那么两者都足够好。
推荐阅读
- api - Docusign:基本 API 中的嵌入式发送
- python - 在 Apache Beam 转换中将 Elasticsearch 客户端对象设置为实例变量会导致 Python 中的序列化错误
- javascript - vuex 映射命名空间操作“不是函数”错误
- javascript - Discord JS 允许用户进入频道
- powershell - PowerShell 5.1:使函数可用于使用的模块
- r - R代码根据列值从数据框中迭代随机删除整行,并每次保存为新数据框
- google-apps-script - 应用脚本基于时间的触发器多次执行
- google-apps-script - 使用脚本编辑器根据特定单元格值自动隐藏“非空”行
- php - Apple 登录二手零售店
- node.js - 将云功能更新为合适的 Node js 版本