基于 Antd Design v4 版本中的 Input.Textarea 进行二次封装, 后来发现其实已经内置了, 不需要再次封装

实现思路

增加外层父级

  1. import React, { FC } from 'react';
  2. import { Input } from 'antd';
  3. interface TextareaCountProps extends TextareaProps {
  4. showCount?: boolean;
  5. }
  6. const TextareaCount: FC<TextareaCountProps> = (props) => {
  7. const { value, onChange } = props;
  8. return (
  9. <div style={{ position: 'relative' }}>
  10. <Input.Textarea />
  11. </div>
  12. );
  13. }

Antd

查看了下最终渲染的 DOM 结构, 基于 ::afterattr()) 实现, 模拟下