2015-04-27 12 views
9

Mam komponent z atrybutem data-icon. Wartością tego atrybutu powinna być na przykład &#xf00f, aby css mógł renderować je poprzez content: attr(data-icon);.React zapobiega ucieczce znaku amp (&) w atrybutach

Jednak cokolwiek próbuję: React ciągle ucieka do &. Nawet jeśli podam prawidłowy kod Unicode \u0026#xf00f.

Czy jest jakiś sposób, aby zatrzymać React przed naruszeniem tej wartości? Poza niebezpiecznym ustawianiem wewnętrznego html, ponieważ nie chcę dodawać kolejnego opakowania.

Komponent

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> 
      ); 
     } 
    }); 
}); 

Wykorzystanie

<Widget.Icon name="add" /> 

Wyjście

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

użyć ' "\ uf00f"'? – chirlu

+0

Niestety css nie interpretuje tego jako znaku utf8, gdy używam funkcji attr(). Po prostu wypisuje dokładnie ten sam ciąg znaków. – Taig

+0

Czy możesz opublikować kod komponentu? –

Odpowiedz

Powiązane problemy