お世話になります。
React.jsを学習中なのですが、表題のように同一のクラス名が複数あるcssをjsxで制御するにはどのようにしたらよいでしょうか。
そもそも被らないようにするのが前提かと思いますが、かぶった場合において制御する方法を知りたいです。
例:
common.css
css
1.all { 2 共通; 3} 4 5.test-contents { 6 中身1; 7}
common2.css
css
1.test-contents { 2 中身2; 3}
上記の2ファイルがあり、どちらも中に.test-contentsクラスがあるとします。
.allクラスは全体で使用したいので共通としてindex.jsで読み込みます。
js
1import './css/common.css';
TESTコンポーネントでcommon2.cssの.contentsを使用したいとします。
jsx
1import './css/common2.css'; 2 3class TESTComponent extends React.Component { 4 render() { 5 return ( 6 <div className="test-contents"></div> 7 ); 8 } 9}
このようにすると当然contentsはindex.jsとTESTComponentのtest-contentsが読み込まれるのでmultipleとなり、common.cssとcommon2.cssが読み込まれ、レイアウトが崩れてしまう結果となってしまいます。
TESTComponentで
jsx
1import COMMON2 from '../css/common2.css'; 2 3class TESTComponent extends React.Component { 4 render() { 5 return ( 6 <div className={COMMON2.test-contents}></div> 7 <div className={COMMON2.testContents}></div> 8 <div className={COMMON2['test-contents']}></div> 9 ); 10 } 11}
などのように試行錯誤してみたのですが、どれもうまくいきませんでした。
console.log(COMMON2);をしてみると結果は {} なのでそもそもCOMMON2を読み込むことができていないようです。
そもそも設計的によろしくないとは思うですが、上記のように使用する場合にはどのようにして行えばよいかご教示いただけませんか?
よろしくお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/07 08:21