Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
Reactjs 如何在React中获取对嵌套子对象的引用_Reactjs_Reactjs Flux_Flux - Fatal编程技术网

Reactjs 如何在React中获取对嵌套子对象的引用

Reactjs 如何在React中获取对嵌套子对象的引用,reactjs,reactjs-flux,flux,Reactjs,Reactjs Flux,Flux,我的应用程序结构如下(HighOrderComponentis-Alt的AltContainerwrapper): ref解析顺序发生了轻微的变化,因此在调用组件的componentDidMount方法后,组件的ref立即可用;只有当您的组件在componentDidMount中调用父组件的回调时,才可以看到此更改,这是一种反模式,无论如何都应该避免 为什么需要调用ref(装载的DOM组件)上的collectData()方法?备选方案(更符合react):在组件中定义状态collectData

我的应用程序结构如下(
HighOrderComponent
is-Alt的
AltContainer
wrapper):

ref解析顺序发生了轻微的变化,因此在调用组件的componentDidMount方法后,组件的ref立即可用;只有当您的组件在componentDidMount中调用父组件的回调时,才可以看到此更改,这是一种反模式,无论如何都应该避免


为什么需要调用ref(装载的DOM组件)上的
collectData()
方法?备选方案(更符合react):在组件中定义状态
collectData:false
,将其传递给画布组件
。在canvascomponent内部(可能在getInitialData+内部componentWillUpdate内部),执行
if(this.props.collectData){collectData();}
。当用户单击按钮(顶部组件的一部分)时,将触发
this.setState({collectData:true})
@wintvelt将尝试此操作。感谢您关注同一个问题:(不幸的是,高阶组件和子组件都是包,因此我不太愿意修改它们……可能是
<App>
    <HighOrderComponent store={someStore...}>
        <MyCanvasComponent ref="canvasRef" />
    </HighOrderComponent>
</App>