Javascript 访问封装在高阶组件中的React组件

Javascript 访问封装在高阶组件中的React组件,javascript,reactjs,reactjs-flux,Javascript,Reactjs,Reactjs Flux,我知道有类似的问题,但没有一个答案是令人困惑的,因为这个问题应该会影响到很多使用组件包装的人 假设我有一个组件,它被包裹在一个像弹簧一样的包装物中访问包装的react组件(例如,在结构中较高位置的鼠标事件处理程序中)的优雅方式是什么? 在没有包装器的情况下,在我看到的示例中,它是通过将子对象的id绑定到父对象的render方法中的处理程序,然后通过parent.refs[id]访问子对象来完成的。我至少可以想出一些丑陋的解决办法,如: 将相同的ref-id传递给包装器,并使用一个helper方

我知道有类似的问题,但没有一个答案是令人困惑的,因为这个问题应该会影响到很多使用组件包装的人

假设我有一个组件,它被包裹在一个像弹簧一样的包装物中访问包装的react组件(例如,在结构中较高位置的鼠标事件处理程序中)的优雅方式是什么?

在没有包装器的情况下,在我看到的示例中,它是通过将子对象的id绑定到父对象的render方法中的处理程序,然后通过parent.refs[id]访问子对象来完成的。我至少可以想出一些丑陋的解决办法,如:

  • 将相同的ref-id传递给包装器,并使用一个helper方法返回此.refs[id].refs[id]
  • 将包装器放在结构中较低的位置,例如将
    Spring
    放在我的子组件中,而不将子组件包装在其中
  • 在包装器上复制子道具(虽然不能访问真实的东西)

但是有一个典型的解决方案吗?我觉得有一个只添加了一些功能的包装器不应该如此轻易地中断父母和孩子之间的沟通

为什么处理程序需要(通过refs)对子对象进行DOM引用?使用
bind()
可以根据需要向父级发送尽可能多的子级状态。通常,唯一需要refs的时间是需要执行DOM本机操作时。