反应得到所有的孩子参考

时间:2016-02-24 12:13:06

标签: javascript reactjs refs

我有一个渲染动态孩子的组件,这些孩子中的每一个都需要为他们分配一个参考,例如ref={'childID' + index}

一旦孩子们装了我,我就需要一种方法让孩子们过来并获得他们的参考。

任何方式做到这一点?

2 个答案:

答案 0 :(得分:2)

您应该能够使用this.refs循环遍历Object.keys对象。

Object.keys(this.refs).forEach(key =>
  const ref = this.refs[key];
  ...
);

答案 1 :(得分:0)

您可以使用ref道具的回调样式来收集所有裁判。

这是一个粗略的例子,说明了这一点。

var refs = {};

function refCollector(id) {
  return function(element) {
    refs[id] = element;

    if(allRefsCollected()) {
      // do some work with all refs
    }
  }
}

function allRefsCollected() {
  return Object.keys(refs).length >= children.length;
}

return children.map((Child, index) => {
  return <Child ref={refCollector(index)} />;
});

allRefsCollected返回true时,您将知道已渲染所有子项并且refs将成为对象,将id映射到element。< / p>