【发布时间】:2019-10-19 02:17:36
【问题描述】:
假设我有一个输入字段:
<input type="text" value={this.state.title} />
现在它的值为例如“早上好!”。我想做的是能够在输入字段中的任何位置单击特定按钮时将一些预定义的文本插入输入字段。例如。当我单击 "[First Name]" / "[LastName]" 按钮时,输入字段的值可以变为,例如“早上好 [名字]”。
我可以在当前文本的末尾添加焦点输入,将其分配给状态,然后使用它来了解状态中要更改的键:
addCodeText(value) {
const { currFocusedInput } = this.state;
this.setState({
[currFocusedInput]: `${
this.state[currFocusedInput]
} [${value}]`,
});
}
但是,正如我所提到的,这只会添加到文本的末尾。我希望能够直接插入到输入标签/元素中,而不是更改状态,以便我可以选择插入的位置(无论如何,输入元素是受控输入)。
我的意思是我可以将光标放在“早安”前面的输入字段中,然后单击按钮时的结果值将是例如“[名字],早上好!”。在我当前的示例中,它总是附加在字符串值的末尾。
我该怎么做?
【问题讨论】:
-
您是否尝试过使用
ref? -
所以你的问题是如何处理字符串连接?
-
只需更改按钮单击时
this.state.title的值。这就是您的代码在输入中所说的内容。 -
我在上面编辑了我的描述,以表明我能够在输入字段中的任何位置插入的意思。
标签: javascript reactjs input