以下のように、component selector パターン を使用することで、 React.Component のインスタンス (A.jsx) などの Styled Component 以外のコンポーネントをセレクターとして指定できる。
A.jsx
class A extends React.Component {
render() {
return <div />
}
}
export default A;
B.jsx
import A from './A';
const StyledA = styled(A)``;
const B = styled.div`
${StyledA} {
}
`
export default B;
ただし、import 元で A コンポーネントを styled()
ファクトリー関数で毎度ラップするの冗長な記述である。
そのため、import 先の全てのコンポーネントは React.Component のインスタンスとして export するのではなく、 Styled Component として export する のが Best Way となる。
A.jsx
class A extends React.Component {
render() {
return <div className={this.props.className} />
}
}
export default styled(A)``;
B.jsx
import A from './A';
const B = styled.div`
${A} {
}
`
export default B;