FlowType 反应上下文

FlowType React Context

有没有办法让 React Context 使用流类型安全?

例如:

Button.contextTypes = {
  color: React.PropTypes.string
};

不幸的是,这本质上是不可能的,因为 Context 在编译时是未知的 (so I was told)。

我使用的一个解决方法是在 parent 级别从消费者中提取上下文,然后在 child...

调用 proptypes

Parent

//parent
class Parent extends component {
render(){
return (
    <Consumer>{(context)=>{
       const { color } = context
       return(
          <div>
             <Button color={color} />
          </div>
        )}}</Consumer>
}

Child

//Button 
... 
Button.contextTypes = {
  color: React.PropTypes.string
};
...