跳到主要内容

textarea

2023年07月18日
柏拉文
越努力,越幸运

一、认识


二、语法


2.1 受控

2.2 非受控

三、属性


四、事件


五、实践


5.1 高度自适应

import { useState } from 'react';

function App() {
const [value, setValue] = useState<string>('');

const handleTextareaChange = (e: any) => {
const style = getComputedStyle(e.target);
const lineHeight = parseInt(style.lineHeight.slice(0, -2), 10);
let height = parseInt(style.height.slice(0, -2), 10);

if (e.target.scrollHeight > height) {
e.target.style.height = `${e.target.scrollHeight + 2}px`;
} else {
while (height >= e.target.scrollHeight) {
e.target.style.height = `${height - lineHeight}px`;
height -= lineHeight;
}
e.target.style.height = `${height + lineHeight}px`;
}

setValue(e.target.value);
};

return (
<div>
<textarea
value={value}
onChange={handleTextareaChange}
style={{
resize: 'none',
height: '36px',
lineHeight: '20px',
boxSizing: 'border-box'
}}
></textarea>
</div>
);
}

export default App;

六、故障