Допустим, у меня есть поле ввода:
<input type="text" value={this.state.title} />
Теперь оно имеет значение, например, "Доброе утро!".То, что я хотел бы сделать, это иметь возможность вставлять некоторый предопределенный текст в поле ввода, когда в любом месте поля ввода нажимается определенная кнопка.Например, когда я нажимаю кнопки "[First Name]"
/ "[LastName]"
, значение поля ввода может стать, например, «Доброе утро [Имя]».
Я могу добавить в конце текста в настоящее времяполучая сфокусированный ввод, присваивая его состоянию, а затем используя его, чтобы узнать, какую клавишу в состоянии изменить:
addCodeText(value) {
const { currFocusedInput } = this.state;
this.setState({
[currFocusedInput]: `${
this.state[currFocusedInput]
} [${value}]`,
});
}
Однако, как я уже говорил, это только добавляет к концу текста.Я хотел бы иметь возможность напрямую вставлять тег / элемент ввода вместо изменения состояния, чтобы я мог выбирать, куда вставлять (в любом случае, элемент ввода является контролируемым входом).
Что я имел в видуявляется то, что я могу поместить курсор в поле ввода перед «Доброе утро», и полученное значение при нажатии кнопки будет, например, «[Имя], Доброе утро!».В моем текущем примере он всегда добавляется в конце значения строки.
Как мне поступить?