2016-10-12 31 views
1

在我的React应用程序中,我通过将呈现的html(Excel知道如何打开)保存到文件来将html表格导出到Excel。我还试图在每个<td>上设置'mso-number-format'样式属性来告诉Excel每个单元使用的数字格式。然而,阵营不喜欢这样的代码:在React中使用自定义外部样式属性

<td style={{ 'mso-number-format': '\\@' }} 

在控制台,它记录:

Unsupported style property mso-number-format. Did you mean msoNumberFormat? Check the render method of `ComponentX`. 

有没有办法来解决这个问题,而无需遍历DOM和手工做这样的事情:

node.setAttribute('style', 'mso-number-format: \\@') 
+0

在这个问题上的任何更新? – Madhu

回答

1

React JSX中的样式属性是用camelCase表示法编写的,而不是您定义的。在反应说,这

在阵营定义它像

<td style={{ 'msoNumberFormat': '\@' }}> 

的文档,内嵌样式没有被指定为一个字符串。相反,他们 与一个对象,其关键是 的风格名称,驼峰格式版本,它的值是样式的值,通常是一个字符串

式按键,以便驼峰格式是与访问 特性相一致的特定来自JS的DOM节点(例如node.style.backgroundImage)。 ms以外的供应商前缀应以大写字母开头。这是 是WebkitTransition具有大写“W”的原因。

Inline styles docs

的反应暗示你,它会解决你的问题。

此外,我认为它应该是\@而不是\\@文本格式。

您也可以尝试,因为

var styles = { 
    msoNumberFormat: '\@' 
} 

<td style={styles}> 
+0

是的我尝试了并且警告消失,但是样式没有在​​中呈现:s –

+0

尝试编辑并查看它是否显示在您的元素css当你尝试检查元素。另外,我认为应该有一个\ @而不是\\ @ –

+0

不能让它飞,看到这里如何颜色:红色被应用于单元格,但不是mso-number-format:https://jsfiddle.net/ pichdude/dce0ygu2/2 / –