当在受控反应输入中尝试输入带有重音字符(在我的情况中为希腊语)的单词时,我遇到一个奇怪的问题:
<input type="text" value={this.state.field}
// and
onChange={event => this.setState({ field: event.target.value } />
默认情况下,当我想输入带重音符号的字符时,我需要按分号,然后按字母,所以; + ο = ό
。
onChange()被触发3次: 1. value =“ ΄”(按;的结果) 2. value =“” 3. value =“ό”
首先是由于按;而其他两个同时发生,是os /浏览器删除前一个字母并用适当的强调字母替换它的结果。
但是,尽管事实上setState()被调用了3次,但组件调用仅渲染了2次(第一次为一次,第三次为setState一次),结果为“ ΄ό”。
Afaik这仅影响macOS / iOS。
有人解决此问题吗?