2015-04-27 2 views
9

У меня есть компонент с атрибутом data-icon. Значение этого атрибута должно быть, например, &#xf00f, так что css может отображать его через content: attr(data-icon);.React сохраняет escape-символ (&) в атрибутах

Однако, что бы я ни пытался: Реагирование продолжается до &. Даже когда я предоставляю нужный символ Юникода \u0026#xf00f.

Есть ли способ остановить Реагирование от возиться с этим значением? Кроме того, опасно настраивать внутренний html, так как я не хочу добавлять другую обертку.

Компонент

define([ 'react', 'util' ], function(React, Util) 
{ 
    return React.createClass(
    { 
     render: function() 
     { 
      //var amp = '\u0026', 
      var amp = String.fromCharCode(38),  
      // Util.icons[x] returns a String, such as "f00f" 
      code = amp + '#x' + Util.icons[this.props.name] + ';'; 

      return (
       <i data-icon={code}> 
        {this.props.children ? <span>{this.props.children}</span> : null} 
       </i> 
      ); 
     } 
    }); 
}); 

Использование

<Widget.Icon name="add" /> 

Выход

<i data-icon="&amp;#xf0fb;" data-reactid=".170lse36465.7.0"></i> 
+0

Использование ' "\ uf00f"'? – chirlu

+0

К сожалению, css не интерпретирует это как символ utf8, когда я использую функцию attr(). Затем он печатает точно такую ​​же строку. – Taig

+0

Можете ли вы разместить код для своего компонента, пожалуйста? –

ответ