如何在 React 中使用 Material-UI 在 onFocus 事件上选择文本字段中的部分文本?

Ang*_*tti 6 javascript textfield reactjs material-ui

我在反应应用程序中有一个带有材料 -UI TextField 的模态表单,我有一个默认值,es。一个文件,当元素加载时,我只会选择文件名而不选择扩展名....

我在标签 TextField 中执行了以下代码:

<textField 
    value={value}
    fullWidth
    autoFocus
    onFocus={event => {
    event.target.select()}} />
Run Code Online (Sandbox Code Playgroud)

但这将选择 textField 中的所有文本。 在此处输入图片说明 如何只选择文本的一部分?例如:如果我有 myfile.doc,我只会像这样选择 myfile 在此处输入图片说明

谢谢

gaz*_*rgo 11

使用setSelectionRange结合lastIndexOf方法来查找最后一个的位置.

class App extends React.Component {
  handleFocus = event => {
    event.preventDefault();
    const { target } = event;
    const extensionStarts = target.value.lastIndexOf('.');
    target.focus();
    target.setSelectionRange(0, extensionStarts);
  }
  
  render(){
    return (
      <input
        value={'myfile.doc'}
        onFocus={this.handleFocus}
      />
    )
  }
}

ReactDOM.render(<App />, document.getElementById('root'));
Run Code Online (Sandbox Code Playgroud)
<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="root"></div>
Run Code Online (Sandbox Code Playgroud)