<div
ref={ref}
className={clsx(
classes && classes.size,
error && styles.error,
styles.textarea
)}
data-text={placeholder}
onInput={(e: any) => {
const eventValue = e.target.innerText;
const newValue = wrapper
? formatMessageWithParams(wrapper, { value: eventValue })
: eventValue;
setValue(name, newValue);
}}
contentEditable
id="textarea"
dangerouslySetInnerHTML={{ __html: value }}
/>
我想制作可编辑的富文本元素,并将在其中显示 html 字符串。我试图找出如何在 div 中呈现 html 字符串的方法 - 可以用dangerouslySetInnerHtml
prop 完成的方式,我也发现了你不能使用onChange
的,你应该使用的处理程序是onInput
。我有什么问题,当我输入一些东西时,它会setValue
在每次按下按钮时按功能改变值,但是字段松散焦点和 carret 停留在第一行。我该如何预防?我试图通过 实现它ref.current.focus
,但它不起作用,div
没有autoFocus
属性,我也试图通过 显示价值data-value
,但是 html 然后不起作用。有没有办法防止失去对contentEditable
div 元素的关注?
https://codesandbox.io/s/determined-dawn-i75kg?file=/src/App.js