2016-10-12 4 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表記で記述されており、定義したとおりではありません。反応は、Inが反応この

を言うに

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

のようなドキュメントを、それを定義し、インラインスタイルは、文字列として指定されていません。代わりに、彼らは は

スタイルキーがオンに プロパティにアクセスすると一致するためにはcamelCase形式されている文字列は通常、そのキー のcamelCase形式のバージョンは、スタイル名であり、その値は、スタイルの値であるオブジェクトで指定されています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 / –

関連する問題