如何在ReactJS中删除锚点标签的HREF属性

4
我有以下渲染函数。当组件具有URL时,它会创建一个超链接;否则,它将保持为空。
render: function() {
    var url = this.state.url;
    if (url) {
        return <a href={url}>{this.props.children}</a>
    } else {
        return <a>{this.props.children}</a>
    }
},    

问题在于一旦设置了HREF属性,React就不会将其删除。否则语句将导致一个看起来像这样的标签:<a data-reactid=".0.1" href="">
我知道我可以使用SPAN标签而不是A标签。但出于一致性的考虑,我宁愿不这样做。

1
<a>元素必须具有href属性或name属性。您正在创建的内容是无效的。 - Felix Kling
如果未指定href属性,则该元素表示占位符超链接。http://www.w3.org/TR/html-markup/a.html#a - cleong
我改正了。这是有趣的部分:“a”元素上的“name”属性已经过时。考虑在最近的容器上放置一个“id”属性。 - Felix Kling
1个回答

1
您可以将href设置为#,然后添加一个onClick处理程序,其中仅有e.preventDefault()。不过我会建议使用span方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接