FluxはReactJSコンポーネントでいっぱいのライブラリを書いているので、Fluxはライブラリなので使用しないでください。ライブラリ内の他のReactコンポーネントを取得する
私はコンポーネントがThemeProvider
です。
import React from 'react';
class OfficeUIThemeProvider extends React.Component {
constructor(props) {
super(props);
}
render() {
return null;
}
}
OfficeUIThemeProvider.propTypes = {
theme: React.PropTypes.oneOf(['Office2016']).isRequired,
color: React.PropTypes.oneOf(['Light-Blue', 'Blue', 'Green', 'Orange', 'Purple', 'Red']).isRequired
};
export default OfficeUIThemeProvider;
このコンポーネントが何をレンダリングするべきではありませんので、私はrender()
方法でnull
を返します。
次に、私は単純なコンポーネント、ボタンを持っています。
import React from 'react';
class OfficeUIButton extends React.Component {
constructor(props) {
super(props);
}
render() {
return <div className={"officeui-button"}>
<span className="{officeui-button-label}">{this.props.label}</span>
</div>
}
}
OfficeUIButton.propTypes = {
label: React.PropTypes.string.isRequired,
};
export default OfficeUIButton;
は今、私はボタンがThemeProvider
で提供される値に基づいて、特定のクラスを持っていると思います。
ThemeProvider
render()
メソッドでOfficeUIButton
コンポーネントを直接レンダリングするのが簡単な解決策ですが、ライブラリを開発していて、結合したくないので、これは有効な解決策ではありません。
として動作するはずです。このライブラリを使用したアプリケーション:
ReactDOM.render(
<OfficeUIThemeProvider theme='Office2016' color='Light-Blue'>
<OfficeUIButton label="To..." />
</OfficeUIThemeProvider>,
document.getElementById('app')
);
はしかし、これは私のThemeProvider
リターンnull○ in it's
render`方法以来、何もレンダリングしません。
これはどのように達成できますか?
敬具、
これは./source/core/components/officeui-theme-provider/で 'ERRORをレンダリングofficeui-theme-provider.jsx モジュールビルドに失敗しました:SyntaxError:C:/Dev/officeui-react/source/core/components/officeui-theme-provider/officeui-theme-provider.jsx:予想外のトークンです(47 :20) 'Webpackで。 – Complexity
申し訳ありません、私の間違い。編集済み –