使用 ReactJS 生成内联字体大小样式

Posted

技术标签:

【中文标题】使用 ReactJS 生成内联字体大小样式【英文标题】:Generating inline font-size style using ReactJS 【发布时间】: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 样式在样式表中工作。样式表是一种常见的最佳实践,因此其他人不必担心在密集的代码块中遗漏任何内容。不过很高兴你想通了! 【参考方案1】:

使用fontSize 而不是font-size

解决方案是通常包含破折号的驼峰式属性

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

回答了我自己的问题:)

【讨论】:

如果你有类似的东西:-webkit-box-shadow,那么就放 webkitBoxShadow @AndyB 您实际上需要以大写 W 开头,因此它将是“WebkitBoxShadow”。 React 声明除 ms 之外的供应商前缀以大写字母开头。 facebook.github.io/react/tips/inline-styles.html【参考方案2】:

我使用 fontSize: 像素数

【讨论】:

【参考方案3】:

正如https://reactjs.org/docs/dom-elements.html 所说, 我们需要删除除第一个单词外的“-”和大写

例子-background-color as backgroundColor,

除了少数之外,其他地方都适用-

aria-* and data-*

例子-

aria-label as aria-label 

以上对我有用!

【讨论】:

您混淆了 aria-label 和 data-* 等 HTML 属性、[casing-docs](reactjs.org/docs/dom-elements.html) 以及使用 backgroundColor 和 WebkitTransition 等内联样式创建的 CSS 属性reactjs.org/docs/dom-elements.html#style 没有什么可混淆的,而不是背景颜色需要使用背景颜色。就是这么简单。

以上是关于使用 ReactJS 生成内联字体大小样式的主要内容,如果未能解决你的问题,请参考以下文章

如何在 reactjs 中动态更改字体大小和字体粗细?

iPhone 上的字体大小比 PC 上的小

如何设置摩纳哥编辑器内联字体大小?

如何更改 jqGrid 中的字体大小?

在jupyter笔记本中设置markdown内联的字体大小

notepad++设置字体大小和字体样式