【问题标题】:Access to a several elements through one ref React通过一个 ref React 访问多个元素
【发布时间】:2018-05-09 12:08:16
【问题描述】:

我想使用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')
);
<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>

【问题讨论】:

标签: javascript reactjs ref react-dom


【解决方案1】:

您分配refs 的方式不正确。在render()方法的早期开始做:

this.tabs = []

refs 将被分配通过

<span className="tab" ref={(tab) => { this.tabs.push(tab) }}>One</span>

希望你能致电this.tabs这个案子!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多