Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以从react组件访问应用程序实例?_Javascript_Reactjs - Fatal编程技术网

Javascript 是否可以从react组件访问应用程序实例?

Javascript 是否可以从react组件访问应用程序实例?,javascript,reactjs,Javascript,Reactjs,我的reactjs应用程序中有自定义组件: class Word extends React.Component { click() { // can i access app instance here? } } 您的问题并不精确,但我假设您有顶级应用程序组件,其中包含子组件,并且您正在询问子组件是否可以访问应用程序组件 如果是这种情况,那么只需将引用作为道具传递: class App extends React.Component { render(

我的reactjs应用程序中有自定义组件:

class Word extends React.Component {
    click() {
       // can i access app instance here?
    }
}

您的问题并不精确,但我假设您有顶级应用程序组件,其中包含子组件,并且您正在询问子组件是否可以访问应用程序组件

如果是这种情况,那么只需将引用作为道具传递:

class App extends React.Component {

    render() {
        <Word parent={this} />
    }
}

class Word extends React.Component {
    click() {
       console.log(props.parent);
    }
}
类应用程序扩展了React.Component{
render(){
}
}
类词扩展了React.Component{
单击(){
console.log(props.parent);
}
}

但是我认为这是反模式的。

您能解释一下您需要访问哪些内容吗?也许还有另一种方法可以满足您的需要。我有socketio实例。请向我们展示您的组件的完整代码。组件只能访问从其父级传递给它们的道具。如果你想从更高层次的组件中得到一些东西,把它作为一个道具传下去。如果你认为它是反模式的,我希望看到替代方案,或者如果不需要,替代方案的总体解决方案是什么(注意:我不相信任何东西,我只是好奇一个不久前也出现的问题)。这是错误的原因有很多,例如它使组件更耦合,这使它们更难测试。在React中,您应该将所有必需的数据作为道具向下传递,子组件不需要知道其父组件。另一种方法是提升状态(更多见React文档)。