にstyleNameプロパティを追加し、私は自分自身がこのように単純化することができます何かをしようとしているが見つかりました:は、コンポーネントを反応させるの反応-CSS-モジュールを使用して
import React from 'react'
import CSSModules from 'react-css-modules'
import ChildComponent from './ChildComponent.jsx'
import styles from './ParentComponent.css'
class ParentComponent extends React.Component {
render() {
return (
<div>
<p styleName='parentComponent'>This is rendered in ParentComponent</p>
<ChildComponent styleName='some-name' /> // this style is not applied
</div>
)
}
}
export default CSSModules(ParentComponent, styles)
CSSクラスsome-name
が定義されていますParentComponent.css
にあり、ChildComponent
をParentComponent
に配置するルールが含まれています。
import React from 'react'
import CSSModules from 'react-css-modules'
import styles from './ChildComponent.css'
class ChildComponent extends React.Component {
render() {
return (
<div> // expected to have this div decorated with 'some-name' class
<p styleName='childComponent'>This is rendered in ChildComponent</p>
<button styleName='childComponent'>This is rendered in ChildComponent</button>
</div>
)
}
}
export default CSSModules(ChildComponent, styles)
私はChildComponent
(ラッピング)に描画されているものの最初の要素にsome-name
クラスで定義されたCSSを受け取るために期待していたが、これは起こっておらず、 ':
ChildComponent
実装では、このようになりますsome-class 'は無視されます。
私は余分なラップを追加し、それにスタイルを適用することによって、この問題を回避することができますが、私は、可能な場合は、これを避けたい:
// in ParentComponent do this instead
render() {
return (
<div>
<p styleName='parentComponent'>This is rendered in ParentComponent</p>
<div styleName='some-name'>
<ChildComponent />
</div>
</div>
)
}
がうまくいけば、私は十分にユースケースと問題を説明してきました、これを行う方法に関する推奨事項は非常に高く評価されます。
私は同じユースケースを持っています。最も低いコードブロックをhttps://github.com/gajus/react-css-modules#loops-and-child-componentsに適用することも役に立ちません。 ChildComponentをラップしてはいけません。どのようにこれを解決できますか? – publicJorn