如何以编程方式将重点放在React中其他组件中的元素上?

时间:2018-11-28 23:12:19

标签: reactjs focus accessibility

我有一个父级组件和两个子级组件,分别称为子级A 子级B 。我想单击子A 中的按钮,该按钮将焦点放在子B 中的元素上。更具体地说,我想集中注意子B mensalita = Mensalita.objects.get(pk=this_object_id); veiculo = mensalita.veiculo; pessoa = veiculo.proprietario; //You've got your Person without problems. 标记下的第一个元素。

我该怎么做?我是否必须在父母中使用<main>,然后将该引用传递给两个孩子,还是有更直接的方法呢?

1 个答案:

答案 0 :(得分:2)

像您提到的那样在父组件中创建引用并将其传递给child B,并创建将引用集中并传递给child A的函数是一种处理方法。

>

示例

class App extends React.Component {
  ref = React.createRef();

  handleClick = () => {
    this.ref.current.focus();
  };

  render() {
    return (
      <div>
        <ChildA onClick={this.handleClick} />
        <ChildB innerRef={this.ref} />
      </div>
    );
  }
}

function ChildA(props) {
  return <button onClick={props.onClick}>Focus</button>;
}

function ChildB(props) {
  return <input ref={props.innerRef} />;
}

ReactDOM.render(<App />, document.getElementById("root"));
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>

<div id="root"></div>