Я использую компоненты Office Fabric UI React и хочу переключить текстовый ввод на многострочный, если пользователь вводит запятую.Я могу заставить эту часть работать, однако, когда вход переключается между однострочным и многострочным входами, он теряет фокус.Так что если вы наберете текстовое поле и наберете запятую, текстовое поле теряет фокус.Я полагаю под капотом, компонент текстового поля из Office Office реагирует на текстовую область вместо ввода, когда я переключаюсь между ними, и фокус остается на замененном вводе и не переключается автоматически на новую текстовую область.Любые идеи, как я могу гарантировать, что текстовое поле сохраняет свой фокус после переключения многострочного?Я попытался установить фокус с элементами ref, но это не работает ..
export class PhoneNumbers extends React.Component {
constructor(props) {
super(props);
this.state = {
phoneNumber: "",
isMultipleNumbers: false
};
this.numbersInputRef = React.createRef();
this.handleNumbersChange = this.handleNumbersChange.bind(this);
}
handleNumbersChange(event) {
let numbers = event.target.value;
this.setState({ isMultipleNumbers: numbers.indexOf(";") > 0 ? true : false });
this.setState({
phoneNumber: numbers
});
}
render() {
return (
<TextField
label="Phone Numbers"
name="phoneNumber"
value={this.state.phoneNumber}
onKeyUp={this.handleNumbersChange}
componentRef={input => (this.numbersInputRef = input)}
multiline={this.state.isMultipleNumbers}
/>
);
}
}