0.2.81 • Published 5 months ago
@befe/brick-comp-textarea v0.2.81
FAQ
字数长度限制是否需要截断处理?
总的来说,除非能特别明确截断必要性,一般推荐不要直接"截断"
- 对于有长度限制的场景,一般认为输入限制的提示是必须的,即一般需要告诉用户具体的字数限制(而不是简单飘红截)
- 有输入限制的提示前提下,“直接帮用户决定最后的字符就是要删除的” 被认为是粗暴的,因为用户斟酌后决定删除的文字处在文本中间的可能性更大
- 对于复制粘贴大段文字的情景,“最后的文字不是用户想要删除的文字”的可能性更是大大增加
- 截断对于中文拼写输入在最后一两个字的输入大概率不友好
- 举例:限制 50 个字, 已经写了 48 个,只需在写一个 "赢" 结束,但由于
ying只能打出yi就被截断了,无法完成拼写
- 举例:限制 50 个字, 已经写了 48 个,只需在写一个 "赢" 结束,但由于
组件层面,默认是不截断处理 ,props.maxLength 只是字数提示,也不提供 "截断" 的 api 支持。 对于非截断不可的情景,需通过控制型 value + onChange 自行处理。因为:
- 截断作为边缘需求,认为不常见了
- 组件内部实现上,由于
props.onChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void,如果不篡改e.target.value就没法提供控制用法下的"截断处理"