あなたのリアクトアプリがブートストラップされるinjectGlobal()
スタイルの成分ヘルパーメソッドを使用します。この方法では、従来のCSSを使用しているかのようにCSSセレクタをスタイルすることができます。
まず(私はv2.1の新しいクラス名の構文を使用していないしてください)react-transition-group
のためのあなたのCSSでリテラルテンプレートをエクスポートするJSファイルを作成します。あなたのその後
globalCss.js
const globalCss = `
.transition-classes {
/* The double class name is to add more specifity */
/* so that this CSS has preference over the component one. */
/* Try removing it, you may not need it if properties don't collide */
/* https://www.styled-components.com/docs/advanced#issues-with-specificity */
&-enter&-enter {
}
&-enter&-enter-active {
}
&-exit&-exit {
}
&-exit&-exit-active {
}
}
`;
export default globalCss;
をエントリ・ポイント・ファイル:
index.jsx
import { injectGlobal } from "styled-components";
import globalCss from "./globalCss.js";
injectGlobal`${ globalCss }`; // <-- This will do the trick
ReactDOM.render(
<Provider store={ Store } >
<HashRouter >
<Route path="/" component={ Component1 } />
<Route path="/" component={ Component2 } />
</HashRouter>
</Provider>,
document.getElementsByClassName("react-app")[0]
);
しかし、スタイル付きコンポーネントを使用する場合でも、CSS/SASS/Lessを使用してreact-trasition-group
のクラスを記述するだけで、うまく動作します。