【发布时间】:2021-06-24 14:46:41
【问题描述】:
当在 react 中找到模式时,我试图在文本之间添加一个按钮标签,这是在 dangerouslySetInnerHTML 属性中完成的。 onClick 仅适用于 alert() 和 console.log(),当我将函数传递给它时它不起作用。我错过了什么?
export const detectHashTagPattern = (text) => {
if(!text) return '';
let pattern = /This is a follow-up to your previous request #[0-9]+/gi;
let hashTagPattern = /#[0-9]+/;
text = text.replace(pattern, (res) => {
return res.replace(hashTagPattern, `<button onClick={}>${hashTagPattern.exec(res)}</button>`);
});
return text;
};
【问题讨论】:
-
关于您的问题:
window对象中是否存在该函数?但是,如果您找到了模式,更好的解决方案可能是将字符串拆分为一个数组。然后通过迭代来渲染它。通过拥有一个数组,您可以完全避免使用dangerouslySetInnerHTML。 -
函数已经存在。不使用 dangerouslySetInnerHTML 的方法只渲染组件,我想从 [object Object] 调用方法
-
所以目标是当检测到特定模式时,将模式文本转换为按钮组件,单击该按钮组件时,会打开一个模式以显示一些信息
标签: javascript reactjs dangerouslysetinnerhtml