Вы можете управлять этим с помощью свойства tabIndex
, но вам может быть лучше выяснить, как элементы должны отображаться в источнике в том порядке, в котором вы хотите, чтобы фокус был направлен.
Iнашел этот ресурс удобным: https://bitsofco.de/how-and-when-to-use-the-tabindex-attribute/
Когда использовать положительное значение tabindex
Почти нет причин использовать положительное значение для tabindexи это на самом деле считается анти-паттерном.Если вы обнаружите необходимость использовать это значение для изменения порядка, в котором элементы становятся фокусируемыми, вероятно, вам действительно нужно изменить порядок исходных элементов HTML.
Одна из проблем, связанных с явным управлением порядком tabindex, заключается в том, что любые элементы с положительным значением будут располагаться перед любыми другими фокусируемыми элементами, на которые вы явно не указали tabindex.Это означает, что вы можете получить очень запутанный порядок фокусировки, если пропустите какие-либо элементы, которые вы хотели бы видеть в миксе.
Если вы хотите, чтобы кнопка справа находилась перед кнопкой слева вПорядок фокуса, есть различные опции CSS, которые позволят кнопке справа идти первым в исходном порядке.
Если, однако, вы решите, что явное указание tabindex - ваш лучший вариант, вот примерпоказывая, как это сделать для TextField
и Button
:
import React from "react";
import ReactDOM from "react-dom";
import TextField from "@material-ui/core/TextField";
import Button from "@material-ui/core/Button";
function App() {
return (
<div className="App">
<TextField label="1" inputProps={{ tabIndex: "1" }} />
<br />
<TextField label="3" inputProps={{ tabIndex: "3" }} />
<br />
<TextField label="2" inputProps={{ tabIndex: "2" }} />
<br />
<Button tabIndex="5">Button 5</Button>
<Button tabIndex="4">Button 4</Button>
</div>
);
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);