我正在使用一个文本区域,在React挂载时自动聚焦,这样光标就放在文本区域的最末端。我如何让这个光标放在最开始的地方(见下面的代码片段)?谢谢!
class App extends React.Component {
componentDidMount() {
this.textArea.focus();
}
render() {
return (
<textarea
ref={node => this.textArea = node}
value="Hello, I want this cursor to be at the beginning (before the hello) when on focus, and not at the end."
/>
);
}
}
ReactDOM.render(<App />, document.getElementById('app'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="app"></div>
2条答案
按热度按时间t3psigkw1#
您可以使用
HTMLTextAreaElement.selectionEnd
属性,并在触发焦点事件时将其设置为0。更新了答案并添加了
setTimeout
,因为使用鼠标聚焦时Chrome会出错92vpleto2#
下面是答案,感谢Gabriele Petrioli: