Javascript onClick函数不会在危险的LysetinerHTML中用作字符串的任何元素上激发
我不知道这是一个错误还是我做错了什么 我有这样的代码,onClick-on-anchor不会发生火灾:Javascript onClick函数不会在危险的LysetinerHTML中用作字符串的任何元素上激发,javascript,reactjs,Javascript,Reactjs,我不知道这是一个错误还是我做错了什么 我有这样的代码,onClick-on-anchor不会发生火灾: const DangerousText = props => ( <div dangerouslySetInnerHTML={{ // eslint-disable-line __html: props.translate( props.translationKey, { link:
const DangerousText = props => (
<div
dangerouslySetInnerHTML={{ // eslint-disable-line
__html: props.translate(
props.translationKey,
{
link:
`<a
href=${props.link}
onClick="${(event) => { event.preventDefault(); props.history.push(props.link); }}"
>
${props.linkTextTranslationKey ? props.translate(props.linkTextTranslationKey) : ''}
</a>`,
...props.extraVariables,
},
),
}}
/>
);
然后,即使我没有单击“锚定”,此代码也会触发。为什么要首先使用
危险的SetinenerHTML
?同意,如果您愿意,您可以将该代码转换为自己的组件。@trixn我有一种情况,我没有任何其他选择。@Rodrigo我也尝试过,但最后我被迫返回一个字符串。所以,我得到了同样的结果。你能给我举个例子吗,这样我就可以看一看,找出我的错误。危险的setinenerHTML
用于将元素的内容设置为HTML字符串,而不是react代码,并且它将无法访问它“内部”的组件的范围。
onClick="${((event) => { event.preventDefault(); props.history.push(props.link); })(event)}"