博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
antd 给input设置值_AntD Input onChange 中文输入法
阅读量:4964 次
发布时间:2019-06-12

本文共 718 字,大约阅读时间需要 2 分钟。

背景:在react项目中使用ant.design的Input组件,onChange方法在输入拼音时会触发一次(e.target.value为空白符),直到拼音输入完成会再次触发(e.target.value为输入值)。产品设计是实时搜索,所以严重依赖于onChange方法的值

思路:监听onCompositionStart与onCompositionEnd事件设置{lock}变量

「onCompositionStart, onCompositionEnd」

前言:MDN写道input元素有关于输入法的三个事件

正文:follow e.target.value发现:start值为空(相对于input存留值);

change在windows + chrome + sogou pinyin的组合下为一个空白符{" "}且不会多次触发;change在mac + chrome + sogou pinyin的组合下触发多次并带有单引号{"'"};

end值为拼音输入值

基于上述发现可以引入一个{lock}变量。当start时将{lock}设为true;

当end时将{lock}设为false并改变input值再提交value(这里提交value是因为对进行了一层封装,也即触发自定义的onChange事改变input值是因为将设为了受控组件,原因是需要对外提供clear方法以及满足可能会被动设置value需求);

当change时若{lock}为true则仅改变value并不提交(mac下若不允许改变input值则输入法消失,若为false则正常改变value并提交value

话不多说,上代码:

import React, {

转载地址:http://khqhp.baihongyu.com/

你可能感兴趣的文章
.net Tuple特性
查看>>
Java基础常见英语词汇
查看>>
iOS并发编程笔记【转】
查看>>
08号团队-团队任务5:项目总结会
查看>>
SQL2005 删除空白行null
查看>>
mysql备份与恢复
查看>>
混沌分形之迭代函数系统(IFS)
查看>>
边框圆角Css
查看>>
使用Busybox制作根文件系统
查看>>
jpg图片在IE6、IE7和IE8下不显示解决办法
查看>>
delphi之模糊找图
查看>>
Javascript模块化编程的写法
查看>>
oracle 使用job定时自动重置sequence
查看>>
在项目中加入其他样式
查看>>
OMAPL138学习----DSPLINK DEMO解析之SCALE
查看>>
restframework CBV试图的4种方式
查看>>
大图居中,以1920px为例
查看>>
[C陷阱和缺陷] 第7章 可移植性缺陷
查看>>
linux中configure文件默认执行结果所在位置
查看>>
Windows向Linux上传文件夹
查看>>