2014-11-05 13 views
10

Ich versuche, so etwas wie dies in ReactJS zu tun:Generierung von Inline-font-size Stil mit ReactJS

var MyReactClass = React.createClass({ 
    render: function() { 
     var myDivText = "Hello!"; 
     var myFontSize = 6; //this is actually something more complicated, I'm calculating it on the fly 
     var divStyle = { 
      font-size: {fontSize + 'px !important;'}, 
     }; 
     return (<div style={divStyle}>{myDivText}</div>); 
    } 
}); 

Das Problem ist, dass ich diesen Fehler, wenn ich meinen Code ausführen: „Modul Build fehlgeschlagen: Fehler : Parse Fehler: Zeile 5: Unerwartetes Token - " anscheinend, React mag nicht, dass font-size hat einen Strich drin. Wie komme ich hier zurecht? Gibt es eine Möglichkeit, diesem Charakter zu entkommen? Gibt es eine andere CSS-Eigenschaft, die besser reagiert, die dasselbe tut?

Danke!

+0

Es ist tatsächlich JavaScript, das den Fehler zuerst wirft. Ein Name ohne Anführungszeichen muss ein * gültiger Bezeichnername * oder * numerisches Literal * sein. Gültiger Code wäre: '{'font-size': '10px'}' (mit Anführungszeichen). Obwohl ich nicht sicher bin, wie React damit umgehen würde. – David

+0

Es ist wahr, dass JavaScript diese Einschränkungen für nicht aufgeführte Eigenschaftsnamen hat, aber dies ist eigentlich ein Schlüssel in einem React-Stilobjekt, nicht eine JavaScript-Eigenschaft, wenn ich richtig verstehe – kat

Antwort

29

Verwenden fontSize statt font-size

die Lösung auf camelcase Eigenschaften, die in der Regel einen Strich enthalten

http://facebook.github.io/react/tips/inline-styles.html

meine eigene Frage beantwortet :)

+1

Und wenn Sie so etwas haben: -webkit-box-shadow setzen Sie einfach webkitBoxShadow –

+7

@AndyB Sie müssen das wirklich mit einem Kapital W anfangen, also würde es "WebkitBoxShadow" sein. Reagestatus Herstellervorgaben außer MS beginnen mit einem Großbuchstaben. https://facebook.github.io/react/tips/inline-styles.html – bradcush

+0

@bradcush danke, guter Fang –

0

Ich benutze Schrift: Pixel Zahlen