Javascript 当子组件嵌套了多个父组件时,从子组件调用超级父函数

Javascript 当子组件嵌套了多个父组件时,从子组件调用超级父函数,javascript,reactjs,Javascript,Reactjs,让我们假设React组件具有多个父级。当我想调用superparent(最高级别的组件)的函数时。我该怎么做呢。请参阅示例代码 ``` 导出默认类WeekView扩展React.Component{ 建造师(道具){ 超级(道具); } //必须从第三个子级调用此函数 loadData(){ var数据=[]; this.setState({events:data}); } render(){ 返回( ); } } 导出类ChildOne扩展React.Component{ 建造师(道具){ 超

让我们假设React组件具有多个父级。当我想调用superparent(最高级别的组件)的函数时。我该怎么做呢。请参阅示例代码

```

导出默认类WeekView扩展React.Component{
建造师(道具){
超级(道具);
}
//必须从第三个子级调用此函数
loadData(){
var数据=[];
this.setState({events:data});
}
render(){
返回(
);
}
}
导出类ChildOne扩展React.Component{
建造师(道具){
超级(道具);
} 
render(){
返回(
);
}
}
导出类ChildTwo扩展React.Component{
建造师(道具){
超级(道具);
} 
render(){
返回(
);
}
}
导出类childreact.Component{
建造师(道具){
超级(道具);
}
addEvent(){
//如何调用loadData()函数,该函数包含在最高父级中
}
render(){
返回(
);
}
}
```


嗯。我们可以通过道具将请求发送到层次结构的顶部。但是,有没有其他方法可以做到这一点,除非通过层次结构。先谢谢你

react方法是通过道具将功能从父组件向下传递。你提到这是你的答复


基本上,您的父级将拥有一个功能,它将传递给子级,然后子级将触发它。

反应方式是您通过道具将父级组件的功能传递给子级组件。你提到这是你的答复


基本上,你的父母会将一个函数传递给孩子,然后孩子会触发它。

了解了这一点后,我知道#flux体系结构有助于解决这个问题。下面是了解这一点后采用的概念的一部分,我知道通量架构有助于解决这个问题
export default class WeekView extends React.Component {      
    constructor(props) {
        super(props);
    }

    // this functions has to be called from third child
    loadData() {
        var data = [];
        this.setState({events : data});
    }

    render() {
        return (
            <ChildOne >
        );
    }
}

export class ChildOne extends React.Component {
    constructor(props) {
        super(props);
    } 

    render() {
        return (
            <ChildTwo />
        );
    }
}

export class ChildTwo extends React.Component {
    constructor(props) {
        super(props);
    } 

    render() {
        return(
            <ChildThree />
        );
    }
}

export class ChildThree extends React.Component {
    constructor(props) {
        super(props);
    }

    addEvent() {
        // how to call loadData() function, which is included in the highest parent
    }

    render() {
        return(
            <Button onCLick={this.addEvent.bind(this)} />
        );
    }
}