2015-06-17 3 views
2

У меня есть следующая функция рендеринга. Он создает гиперссылку, когда компонент имеет URL-адрес и оставляет его пустым в противном случае.Как удалить атрибут HREF из метки привязки в ReactJS

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 не удалит его. Предложение else приведет к тегу, который выглядит так: <a data-reactid=".0.1" href="">.

Я знаю, что могу просто использовать тег SPAN вместо A. Для согласованности, хотя я бы предпочел.

+0

Я стою исправлено. Это интересная часть: * «Атрибут name для элемента a устарел. Подумайте о том, чтобы вместо этого добавить атрибут id в ближайший контейнер." * –

ответ

0

У вас может быть установлено значение href равным #, а затем добавить обработчик onClick для него, который имеет e.preventDefault() как единственное, что для него. Тем не менее, я бы использовал метод span.

Смежные вопросы