0.2.81 • Published 5 months ago

@befe/brick-comp-textarea v0.2.81

Weekly downloads
-
License
ISC
Repository
-
Last release
5 months ago

FAQ

字数长度限制是否需要截断处理?

总的来说,除非能特别明确截断必要性,一般推荐不要直接"截断"

  • 对于有长度限制的场景,一般认为输入限制的提示是必须的,即一般需要告诉用户具体的字数限制(而不是简单飘红截)
  • 有输入限制的提示前提下,“直接帮用户决定最后的字符就是要删除的” 被认为是粗暴的,因为用户斟酌后决定删除的文字处在文本中间的可能性更大
  • 对于复制粘贴大段文字的情景,“最后的文字不是用户想要删除的文字”的可能性更是大大增加
  • 截断对于中文拼写输入在最后一两个字的输入大概率不友好
    • 举例:限制 50 个字, 已经写了 48 个,只需在写一个 "赢" 结束,但由于 ying 只能打出 yi 就被截断了,无法完成拼写

组件层面,默认是不截断处理 ,props.maxLength 只是字数提示,也不提供 "截断" 的 api 支持。 对于非截断不可的情景,需通过控制型 value + onChange 自行处理。因为:

  • 截断作为边缘需求,认为不常见了
  • 组件内部实现上,由于 props.onChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void,如果不篡改 e.target.value 就没法提供控制用法下的"截断处理"