我正在做一个不和谐的克隆,并试图在聊天栏中实现一个“被提及”的特性。
我的元素看起来如下:
<span
contentEditable
suppressContentEditableWarning={true}
onInput={(e) => {
setMsg(e.target.innerHTML);
}}
>
{mentions &&
mentions.map((obj, i) => {
return (
<>
<MentionWrapper
key={i}
displayName={obj.displayName}
uid={obj.uid}
id={obj.id}
/>
<span> </span>
</>
);
})}
</span>
当我通过backspace删除其中一个“提到”组件时,我遇到了问题。如果我试图在以后的任何时候设置set变量的状态,则响应重新呈现,就会得到一个错误。
Node.removeChild:要删除的节点不是此节点contentEditable的子节点
我明白为什么会发生这种事。我只是想知道有没有办法解决这个问题。
发布于 2022-04-07 07:34:15
我正在用键来解决数组改变长度时的错误
<span
key={mentions.length}
contentEditable
suppressContentEditableWarning={true}
onInput={(e) => {
setMsg(e.target.innerHTML);
}}
>
{mentions &&
mentions.map((obj, i) => {
return (
<>
<MentionWrapper
key={i}
displayName={obj.displayName}
uid={obj.uid}
id={obj.id}
/>
<span> </span>
</>
);
})}
</span>
https://stackoverflow.com/questions/69762696
复制