class Value extends React.Component {
constructor(props) {
super(props)
this.inputRef = ''
this.flag = true
}
render() {
const isChangeable = isEditable && isTypeable
return (
ref={(c) => { this.inputRef = c }}
type="text"
value={value || ''}
placeholder={placeholder}
onCompositionStart={() => { this.flag = false }}
onCompositionEnd={() => { this.flag = true }}
onChange={() => setTimeout(() => {
if (this.flag && isChangeable) {
onChange(this.inputRef.value)
}
}, 100)}
/>
)
}
}
尝试onCompositionStart、onCompositionEnd,onChange解决,调试发现输入中文时只会执行onCompositionStart事件,并且只能在加了这些事件后输入值后input不能获取到输入的值。
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
期待的结果是所有设备上输入中文正常显示?实际看到的是ios设备上文输入法下会取得拼音值累加的问题,安卓和pc端正常?