2015-04-27 8 views
9

Ich habe eine Komponente mit einem data-icon Attribut. Der Wert dieses Attributs sollte beispielsweise &#xf00f lauten, so dass css es über content: attr(data-icon); rendern kann.React behält das Amp-Zeichen (&) in Attributen

Wie auch immer ich es versuche: React bleibt weiterhin auf &. Auch wenn ich das richtige Unicode-Zeichen \u0026#xf00f zur Verfügung stelle.

Gibt es eine Möglichkeit zu stoppen Reagieren von diesem Wert zu verwirren? Außer dem gefährlichen Setzen von innerem HTML, da ich keinen weiteren Wrapper hinzufügen möchte.

Komponente

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

Nutzungs

<Widget.Icon name="add" /> 

Ausgabe

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

Verwenden ' "\ uf00f"': besonderer Anwendungsfall kann ich einfach mit wegkommen? – chirlu

+0

Leider css interpretiert dies nicht als utf8 Zeichen, wenn ich die Funktion attr() verwende. Es druckt dann genau die gleiche Zeichenfolge aus. – Taig

+0

Können Sie bitte den Code für Ihre Komponente veröffentlichen? –

Antwort