<br>
是一个HTML element,<textarea>
不解析/支持HTML元素作为值.
你需要\n
才能像<textarea>
里面的一条新线.
如果你不能改变源数据,用replaceAll
来替换每个<br>
,
const { useState } = React;
const Example = () => {
const [value, setValue] = useState('abc<br>defghijkl');
return <textarea value={value.replaceAll('<br>', '\n')} />;
}
ReactDOM.render(<Example />, document.getElementById("react"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.1/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.1/umd/react-dom.production.min.js"></script>
<div id="react"></div>