通过一个ref React访问几个元素

Ram*_*gov 3 javascript ref reactjs react-dom

我想使用refs功能来访问多个元素。然后,我可以遍历的元素this.tabs。下面的代码不起作用,如何对其进行修复?我现在使用的解决方案是document.querySelectorAll('tabs'),但它似乎不适用于React。

class Comp extends React.Component {
  constructor(props) {
    super(props);
    
    this.tabs = React.createRef();
  }
  
  componentDidMount() {
    console.log(this.tabs);
  }


  render() {
    return (
      <div>
        <span class="tab" ref={this.tabs}>One</span>
        <span class="tab" ref={this.tabs}>Two</span>
        <span class="tab" ref={this.tabs}>Three</span>
      </div>
    );
  }
}

ReactDOM.render(
  <Comp />,
  document.getElementById('app')
);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="app"></div>
Run Code Online (Sandbox Code Playgroud)

asi*_*niy 5

您分配的refs方式不正确。在render()方法的早期开始执行此操作:

this.tabs = []
Run Code Online (Sandbox Code Playgroud)

裁判将通过分配

<span className="tab" ref={(tab) => { this.tabs.push(tab) }}>One</span>
Run Code Online (Sandbox Code Playgroud)

希望您能称呼this.tabs此案!