今天我遇到了在 React 中突出显示匹配括号的问题。这是示例文本:
(my text (is here and) I want (to highlight (something here)))
我希望它在代码编辑器中看起来像,我的意思是: 附加图像
我尝试使用react-process-string
:
processString([
{
regex: /\(|\)/g,
fn: (key, result) => this.colorBracket(key, result[0])
}
])(value);
colorBracket = (key, result) => {
const { usedColors } = this.state;
const bracketColors = ['red', 'green', 'yellow', 'blue', 'purple'];
let newColor = '';
if (result === '(') {
newColor =
usedColors.length
? bracketColors[usedColors.length]
: bracketColors[0];
if (!usedColors.includes(newColor)) {
this.setState({ usedColors: [...usedColors, newColor] });
}
} else {
newColor = usedColors.length
? usedColors[usedColors.length - 1]
: bracketColors[0];
if (usedColors.length) {
this.setState({ usedColors: usedColors.filter(e => e !== newColor) });
}
}
return <span style={{ color: newColor }}>{result}</span>;
};
但我遇到了问题react maximum update depth
。
有没有可能做得更简单,而不更新状态等等?