【发布时间】:2015-01-01 19:11:25
【问题描述】:
我正在尝试在 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>);
}
});
问题是我在运行代码时收到此错误:
“模块构建失败:错误:解析错误:第 5 行:意外令牌 -”
显然,React 不喜欢 font-size 有破折号。我该如何解决这个问题?有什么方法可以逃避那个角色的反应吗?是否有一些不同的 css 属性可以更好地反应喜欢做同样的事情?
谢谢!
【问题讨论】:
-
实际上是 JavaScript 首先抛出错误。不带引号的属性名称必须是有效的标识符名称或数字文字。有效代码为:
{'font-size': '10px'}(带引号)。虽然我不确定 React 会如何处理它。 -
确实,JavaScript 对不带引号的属性名称有这些限制,但如果我理解正确的话,这实际上是 React 样式对象中的键,而不是 javascript 属性
-
camelCase 内联工作,非camel 样式在样式表中工作。样式表是一种常见的最佳实践,因此其他人不必担心在密集的代码块中遗漏任何内容。不过很高兴你想通了!
标签: css font-size reactjs inline-styles react-jsx