1
In react context doc,当一个孩子在未分配contextType的情况下访问时,上下文是空的。看来父母和孩子有必要为使用上下文分配propType。为什么在使用上下文时必须指定上下文类型?
道具也有propTypes,但它们不是必需的,那么上下文为什么必要?它只是为更安全地使用上下文而设计的吗?
In react context doc,当一个孩子在未分配contextType的情况下访问时,上下文是空的。看来父母和孩子有必要为使用上下文分配propType。为什么在使用上下文时必须指定上下文类型?
道具也有propTypes,但它们不是必需的,那么上下文为什么必要?它只是为更安全地使用上下文而设计的吗?
是的。您的问题的答案已经在您提到的页面上。
如果您希望您的应用程序稳定,请不要使用上下文。这是一个 实验性API,它很可能会在未来版本的 React中被破解。
React不希望你使用上下文,除非你知道你在做什么。这就是当我们需要使用上下文时需要明确定义contextTypes
的原因。
相比之下,propTypes
是只需键入检查工具自带起反应,因此要确保开发人员正确地通过了所有必需的道具。如果你没有正确传递道具,它只会显示一些警告。此外,propTypes
类型检查只能在开发人员模式工作,并得到去除生产的基础之上。从React v15.5 propTypes
已弃用,且已移至separate package。