2014-11-05 7 views
10

Staram się zrobić coś takiego w ReactJS:Generowanie inline style font-size użyciu 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>); 
    } 
}); 

Problemem jest to, że ten błąd, gdy uruchomię mój kod: „build Moduł failed: Error : Błąd parsowania: Wiersz 5: nieoczekiwany token - " najwyraźniej Reactowi nie podoba się, że font-size zawiera kreskę. Jak sobie z tym poradzić? Czy istnieje sposób na ucieczkę tej postaci do reakcji? Czy istnieje inna właściwość css, która reaguje lepiej, co robi to samo?

Dzięki!

+0

To jest faktycznie JavaScript, który pierwszy zgłasza błąd. Niekwotowana nazwa właściwości musi być * poprawną nazwą identyfikatora * lub * literałem liczbowym *. Poprawny kod to: '{'font-size': '10px'}} (z cudzysłowami). Chociaż nie jestem pewien, jak React sobie z tym poradzi. – David

+0

To prawda, że ​​JavaScript ma te ograniczenia dla niecytowanych nazw właściwości, ale jest to właściwie klucz w obiekcie stylu React, a nie właściwość javascript, jeśli dobrze rozumiem – kat

Odpowiedz

29

Zastosowanie fontSize zamiast font-size

rozwiązaniem jest właściwościach CamelCase które zwykle zawierają odrobinę

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

odpowiedział na moje własne pytanie :)

+1

A jeśli masz coś takiego: -webkit-box-shadow, to po prostu umieść webkitBoxShadow –

+7

@AndyB Musisz zacząć od dużego W, aby był to "WebkitBoxShadow". Reaguj przedrostki dostawców inne niż ms zaczynają się od kapitału. https://facebook.github.io/react/tips/inline-styles.html – bradcush

+0

@bradcush dzięki, dobry połów –

0

używam fontSize: piksele numery

Powiązane problemy