ckinmind / react-cnode

👨🏻‍💻React构建的cnode社区(附详细问题说明)
https://ckinmind.github.io/react-cnode
15 stars 7 forks source link

关于本项目中context的使用(context.router) #4

Open ckinmind opened 7 years ago

ckinmind commented 7 years ago

在本项目中看到好多地方都定义了contextTypes, 这是在子组件里定义的,方便直接从祖先组件中获取需要的数据,然后再祖先组件中定义getChildContext,但是我怎么找也找不到哪里有定义getChildContext方法的地方,后来想到了这个应该是在Router组件定义的,因为所有组件都是Routet的子组件,一个使用案例如下

class Main extends Component {
constructor(props) {
        super(props);
        this.signout = () => {
            this.props.signin();
            this.context.router.replace({ pathname: '/' });
        }
    }
}
Main.contextTypes = {
    router: React.PropTypes.object.isRequired
};
ckinmind commented 7 years ago

context.router是跳转的一种方式,可以查看issue #5