Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
403 views
in Technique[技术] by (71.8m points)

关于react中的dangerouslySetInnerHTML元素提取问题

现在有这样一段代码

content='<a close="true">点我1</><a>点我2</a>'
const html = {__html:content}

<div className="html-wrap" dangerouslySetInnerHTML={html}></div>

我希望当close属性为true时,可以点击,否则点不了,应该怎么获取这个属性?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

确认渲染完毕(通常是在 componentDidMount 函数中,如果组件 state 中途有更新的话,可能需要在 componentDidUpdate函数中进行 )之后,通过 DOM 接口获取到这个 a标签元素,然后 (a.getAttribute('close') === 'true'就能判断。
如果 a 标签的点击事件由 JS 处理的话,可以将点击事件委托给 html-wrap,在其中判断事件是否经过此 a 元素,拿到此元素之后同样通过 a.getAttribute('close') === 'true' 判断是否需要执行对应的回调函数。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...