我正在尝试创建一个带有Draft.js的编辑器,它将在用户键入特定单词时突出显示它们,但是我遇到了一个错误,其中如果背靠背键入相同的突出显示的单词,由单个空格分隔它将导致突出显示的子字符串被附加到前一个编辑器内容的末尾,以进行一次状态更新(内容在下一次编辑器状态更新时返回预期值)。
我发现在findWithRegex()
中,如果我将匹配数组长度设置为end
+/-1 e.g. end = start + matchArr[0].length + 1;
,则可以解决问题,似乎是将end
设置为子字符串的确切长度。
CodeSandbox:https://codesandbox.io/s/throbbing-thunder-fp2rx8?file=/src/App.tsx(“doe”是本例中的高光字)
我在凌晨1点写了这篇文章,所以我希望我的问题有意义,哈哈,请提出任何你可能有问题的问题。提前谢谢!
1条答案
按热度按时间v64noz0r1#
发现问题了,似乎和React严格模式有冲突哈哈。我所要做的就是删除
index.js/index.tsx
文件中的<React.StrictMode>
标记,现在一切都正常工作了