雨夹雪,bug 估计又要出来了
上次的博客中是关于组件之间的信息传递。但是有一个缺点:就是你所要共享的信息,需要一层一层的传递给最近的父组件
然后一层一层props 的传递给子组件,这样如果项目比较大的话,就比较难以管理。所以下来先介绍一个小知识 context
context
谨慎使用
某个组件在自己的context 设置了context ,这个组件之下的子组件 (父组件不可以) 都可以访问这个状态,不需要中间组件的传递。
父组件设置context demo
getChildContext 这个方法就是设置 context 的过程,它返回的对象就是 context,所有的子组件都可以访问到这个对象。
childContextTypes,它的作用其实 propsType 验证组件 props 参数的作用类似。不过它是验证 getChildContext 返回的对象。
如果你要给组件设置 context,那么 childContextTypes 是必写的。
|
|
子组件获取context
子组件要获取 context 里面的内容的话,就必须写 contextTypes 来声明和验证你需要获取的状态的类型,它也是必写的,如果你不写就无法获取 context 里面的状态
|
|