2016-10-12 51 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 / –