我有一个父级组件和两个子级组件,分别称为子级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>
,然后将该引用传递给两个孩子,还是有更直接的方法呢?
答案 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>