在react组件中使用static contextTypes = {}的原因是什么?

时间:2017-10-17 11:52:56

标签: javascript reactjs

我试图理解一些代码。你可以向我解释一下这个静态contextTypes = {}的目的是什么?为什么我们这样定义?有什么好处?

static contextTypes = {
  product_id: PropTypes.number,
  size: PropTypes.number,
  loadRelatedProducts: PropTypes.func,
}

enter image description here

您可以在此处找到完整的组件代码 - > https://jsfiddle.net/8hbyLopq/1/

未来开发人员的编辑和信息:

所以我阅读了文档,这是类型检查。

React docs说:

  

PropTypes导出一系列可用于确保的验证器   您收到的数据有效。在这个例子中,我们正在使用   PropTypes.string。当为道具提供无效值时,a   警告将显示在JavaScript控制台中。

关于这个的问题:

  1. 此类型检查是针对从RelatedProducts组件父进来的道具,是吗?所以它正在检查RelatedProducts父是否正在向我们发送product.id这是一个数字?如果没有显示控制台日志错误,对吧?

  2. 它也可用于检查其他输入,因为我们在这里从redux操作导入函数loadRelatedProducts,对吗?

  3. 我是否忘记了有关此事的事情?

1 个答案:

答案 0 :(得分:1)

  
      
  1. 此类型检查是针对来自RelatedProducts组件父级的道具,是吗?所以它正在检查RelatedProducts父是否正在向我们发送product.id这是一个数字?如果没有显示控制台日志错误,对吧?
  2.   

正确。是的,以上所有。

  
      
  1. 它也可用于检查其他输入,因为我们在这里从redux操作导入函数loadRelatedProducts,对吗?
  2.   

正确。从代码中可以看出这一点。

  

我是否忘记了有关此事的事情?

不是真的。这只是类型检查,以确保您获得符合条件的上下文:

  • 具有正确的类型(字符串/数字/功能等)
  • 如果isRequired设置为必需,则首先传递。否则,只要类型正确,如果你传递它就可以通过它。